【发布时间】:2016-03-11 18:50:26
【问题描述】:
我正在尝试创建一个逐行遍历熊猫数据框的函数。我想根据其他列的行值创建一个新列。我的原始数据框可能如下所示:
df:
A B
0 1 2
1 3 4
2 2 2
现在我想在每个索引位置创建一个用 A 列 - B 列的行值填充的新列,因此结果如下所示:
df:
A B A-B
0 1 2 -1
1 3 4 -1
2 2 2 0
我的解决方案有效,但仅当我不在函数中使用它时:
for index, row in df.iterrows():
print index
df['A-B']=df['A']-df['B']
这给了我想要的输出,但是当我尝试将它用作函数时,我得到一个错误。
def test(x):
for index, row in df.iterrows():
print index
df['A-B']=df['A']-df['B']
return df
df.apply(test)
ValueError: cannot copy sequence with size 4 to array axis with dimension 3
我在这里做错了什么,我怎样才能让它工作?
【问题讨论】:
-
您只需要相互减去列还是只是一个简单的例子?
-
我实际上只需要一个新列,其中包含 A 列减去 B 列的结果
标签: python pandas iteration dataframe