Python Pandas - 将从函数返回的元组保存到 2 个单独的列中



我正在使用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

最新更新