我检查了很多解决方案,但我无法应用任何问题。
我有一个.csv文件,如下所示:
Header_A;Header_B
0;1
1;4
5;6
6;7
9;8
现在我想以pythonically方式向其中添加另一列“Header_C”,并根据每个定义的前两列的加法计算其值(x),所以类似
def add(a, b):
x = a + b
return x
其中x将是Header_C列的值,a,b是Header_A和Header_B列的总和。
结果应如下所示:
Header_A;Header_B;Header_C
0;1;1
1;4;5
5;6;11
6;7;13
9;8;17
如果可能,无需安装其他模块。输出可以是新的.csv文件。
非常感谢!
答案 0 :(得分:1)
pandas
是您的解决方案:
import pandas as pd
df = pd.read_csv('a.csv')
df['Header_C'] = df['Header_A'] + df['Header_B']
df.to_csv('b.csv', sep=';', index=False)
有关大熊猫的更多信息,请访问http://pandas.pydata.org/
答案 1 :(得分:0)
即使使用
行,我仍然会遇到同样的错误 df = pd.read_csv('a.csv', sep=';')
但是你激发了我的灵感并让我认识到这个问题可能就是标题!所以我尝试了一些东西,现在实际上让它工作了。 这是完全有效的代码:
import pandas
df = pandas.read_csv("a.csv", sep=';', names=['Header_A', 'Header_B'], header=0)
df['Header_C'] = df["Header_A"] + df["Header_B"]
df.to_csv("b.csv", sep=';', index=False)
如果header设置为NONE,Python会将值视为字符串,这会产生如下内容:
9 + 3 = 93
如果设置header = 0,则覆盖它。我不确定我的解释是否准确,但现在该程序做了我想要的!非常感谢!
但是,我仍然对使用CSV模块或纯Python WITHOUT模块的解决方案感兴趣!任何人吗?