Python 如何在pandas中一次编辑/向数据帧添加两列-df.apply()
所以我一直在对熊猫做这样的事情:Python 如何在pandas中一次编辑/向数据帧添加两列-df.apply(),python,pandas,apply,Python,Pandas,Apply,所以我一直在对熊猫做这样的事情: usrdata['columnA'] = usrdata.apply(functionA, axis=1) 以便执行行操作和更改/添加列到我的数据帧。 但是,现在我想尝试这样做: usrdata['columnB', 'columnC'] = usrdata.apply(functionB, axis=1) 但是函数B的输出显然是一个在元组中只有一列的序列(每行有两个值)。有没有一个好方法可以让我: 格式化functionB的输出,以便可以随时将其添加到我的
usrdata['columnA'] = usrdata.apply(functionA, axis=1)
以便执行行操作和更改/添加列到我的数据帧。
但是,现在我想尝试这样做:
usrdata['columnB', 'columnC'] = usrdata.apply(functionB, axis=1)
但是函数B的输出显然是一个在元组中只有一列的序列(每行有两个值)。有没有一个好方法可以让我:
尝试使用
zip
:
usrdata['columnB'], usrdata['columnC'] = zip(*usrdata.apply(functionB, axis=1))
我将直接分配给由新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