使用Python将列添加到现有CSV文件

2024-09-24 22:29:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python向现有csv文件添加新的列标题和值。我查过的每一件事都会将标题附加到最后一列的最后一行。这就是我想要的结果。

Header Header2 Header3 NewHeader Value Value2 Value3 NewValue

我现在得到的是:

Header   Header2   Header3
Value    Value2    Value3**NewHeader
NewValue`

这是我的代码:

import csv
  with open('filename.csv', 'a') as csvfile:
  fieldnames = ['pageviewid']
  writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

  writer.writeheader()
  writer.writerow({'pageviewid': 'Baked'})
  writer.writerow({'pageviewid': 'Lovely'})
  writer.writerow({'pageviewid': 'Wonderful'})

Tags: csvcsvfile标题valuewriterheadervalue2value3
2条回答

最简单的方法是重写到输出文件

import csv
reader = csv.reader(open('filename.csv', 'rb'))
writer = csv.writer(open('output.csv', 'w'))
headers = reader.next()
headers.append("Brand New Awesome Header")
writer.write(headers)
for row in reader:
    row.append(new data for my new header)
    writer.writerow(row)

如果可以选择使用熊猫:

import pandas as pd
df = pd.read_csv('filename.csv')
new_column = pd.DataFrame({'new_header': ['new_value_1', 'new_value_2', 'new_value_3']})
df = df.merge(new_column, left_index = True, right_index = True)
df.to_csv('filename.csv', index = False)

相关问题 更多 >