我有两个功能,如下所示。第二个有效,但第一个无效。为什么?
import pandas as pd
df = pd.DataFrame(data = {'a': [1, 2, 3], 'b': [4, 5, 6]})
def add_subtract_list(a, b):
return [1,2,3,4]
add_subtract_list(5,8)
df[['c','d','x','y']] = df.apply(
lambda row: add_subtract_list(row['a'], row['b']), axis=1)
以下功能有效。来自this页面
import pandas as pd
df = pd.DataFrame(data = {'a': [1, 2, 3], 'b': [4, 5, 6]})
def add_subtract_list(a, b):
return [a + b, a - b]
df[['sum', 'difference']] = df.apply(
lambda row: add_subtract_list(row['a'], row['b']), axis=1)
最佳答案
更新您的函数,使其返回 pandas 系列而不是 python 列表。
def add_subtract_list(a, b):
return pd.Series([1,2,3,4])
关于python pandas 函数返回多个值并将它们放入列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010434/