python-3.x - 如何使用 Python 在给定列中插入新值?
问题描述
每当我的代码运行时,我都会尝试在 csv 文件中插入(更新)值。
这是我的 csv 文件内容:
col1 | col2 | col3
value1,value2,value3
当我运行我的代码时,我只想更新 col3 中的 value3。例如,在我运行我的脚本后它看起来像这样:
col1 | col2 | col3
value1,value2,newly_inserted_value3
这是我的代码:
import csv
from csv import writer
file_name = 'my_file.csv'
with open(file_name, 'wb') as obj:
# Create a writer object from csv module
csv_writer = writer(obj)
# Add contents of list as last row in the csv file
csv_writer.writerow('new_value3')
但是,它不仅在 col3 中插入“new_value3”。我是 python 新手,所以任何想法或建议都会有所帮助。
解决方案
标记库pandas
非常适合处理 csvs。使用以下代码结构:
import pandas as pd
df = pd.read_csv('/path/to/a.csv')
df = apply_your_functions_on_dataframe(df)
df.to_csv('/path/to/your/output.csv')
pd.read_csv 输出的对象称为 pd.DataFrame(此处的教程:https ://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html )。Pandas 会为您处理所有 csv 的写入和读取,所以剩下的就是您想要对数据帧执行的实际操作,这基本上是一个表格。
在您的示例中,尝试使用 : df.loc[0, 'col3'] = new_value3
,它应该可以工作。