所以我一直用熊猫做这样的事情:
usrdata['columnA'] = usrdata.apply(functionA, axis=1)
为了执行行操作并将列更改/添加到我的数据帧。 但是,现在我想尝试做这样的事情:
usrdata['columnB', 'columnC'] = usrdata.apply(functionB, axis=1)
但是函数B的输出显然是一个元组中只有一列的元组(每行有两个值)。对我来说,有一个很好的方式:
答案 0 :(得分:1)
尝试使用zip
:
usrdata['columnB'], usrdata['columnC'] = zip(*usrdata.apply(functionB, axis=1))
答案 1 :(得分:0)
我会直接指定一个由你的新df组成的df,并修改func主体以返回一个用数据列表构建的系列:
In [9]:
df = pd.DataFrame({'a':[1, 2, 3, 4, 5]})
df
Out[9]:
a
0 1
1 2
2 3
3 4
4 5
In [10]:
def func(x):
return pd.Series([x*3, x*10])
df[['b','c']] = df['a'].apply(func)
df
Out[10]:
a b c
0 1 3 10
1 2 6 20
2 3 9 30
3 4 12 40
4 5 15 50