我正在使用pandas
在数据帧的每一行上运行一个函数,然后将结果保存到新列中。我遇到的问题是我的函数返回一个元组。该函数返回例如...
(2345,4837)
我正在通过做将其保存为新专栏...
myDataFrame['col5'] = myDataFrame.apply(muFunction, axis=1)
这有效,但我如何将返回分成 2 列,例如......
myDataFrame['col5'] = myDataFrame.apply(muFunction, axis=1)
myDataFrame['col6'] = myDataFrame.apply(muFunction, axis=1)
但是 col5 中元组的第一部分和 col6 中的第二部分,有人有例子吗?
假设源数据帧包含:
A B C
0 2 4 6
1 4 8 12
2 5 10 15
3 8 16 24
4 9 18 27
要应用于它的函数(返回 2 元组(为:
def myFun(row):
return row.C + 2, row.C * 2
要应用它并将其结果保存在 2 个新列中,您可以运行:
df[['X', 'Y']] = df.apply(myFun, axis=1).apply(pd.Series)
结果是:
A B C X Y
0 2 4 6 8 12
1 4 8 12 14 24
2 5 10 15 17 30
3 8 16 24 26 48
4 9 18 27 29 54