gpt4 book ai didi

python - 使用 python 将另一列添加到 CSV 文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:59 25 4
gpt4 key购买 nike

我希望使用 python 将另一列添加到 CSV 文件中。

file1 是 Date.csv 有格式

ID, Date
0,"Jan 22, 2016"
1,"Jan 21, 2016"
2,"Jan 20, 2016"
3,"Jan 19, 2016"

文件2是Price.csv

ID, Price
0,27.89
1,26.80
2,26.78
3,26.00

我想要的输出是(在 Date.csv 中)

ID, Date
0,"Jan 22, 2016", 27.89
1, "Jan 21, 2016", 26.80
2, "Jan 20, 2016", 26.78
3, "Jan 19, 2016", 26.00

但我要退的是重复的价格

0,27.89,27.89
1,26.80,26.80
2,26.78,26.78
3,26.00,26.00

我的程序如下

import csv

with open('C:/Users/User/OneDrive/Documents/Price.csv','r') as csvinput:
with open('C:/Users/User/OneDrive/Documents/Date.csv', 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)

all = []
row = next(reader)

for row in reader:
row.append(row[1])
all.append(row)

writer.writerows(all)

感谢一些指导,干杯

最佳答案

您不能只将单个列写入现有文件。最好的选择是创建一个新文件。如果两个文件的数据都是有序的,那么您可以简单地将它们压缩并写出更新的字典:

with open('C:/Users/User/OneDrive/Documents/Date.csv') as file1, \
open('C:/Users/User/OneDrive/Documents/Price.csv') as file2, \
open('C:/Users/User/OneDrive/Documents/Output.csv', 'w') as output:
reader1 = csv.DictReader(file1)
reader2 = csv.DictReader(file2)
writer = csv.DictWriter(output, ['ID', 'Date', 'Price'])
writer.writeheader() # Optional if you want the header

for row1, row2 in zip(reader1, reader2):
row1.update(row2)
writer.writerow(row1)

Pandas 也是另一种选择:

import pandas as pd
file1 = pd.read_csv('Data.csv', index_col='ID')
file2 = pd.read_csv('Price.csv', index_col='ID')
pd.concat([file1,file2], axis=1).to_csv('Output.csv')

输出:

ID,Date,Price
0,"Jan 22, 2016",27.89
1,"Jan 21, 2016",26.80
2,"Jan 20, 2016",26.78
3,"Jan 19, 2016",26.00

关于python - 使用 python 将另一列添加到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com