考虑以下DataFrame
。
n v1 v2 v3 v4 v5
0 1 2 3 4 5
1 1 2 3 4 5
2 1 2 3 4 5
对于每一行,我想将v2
,v3
,v4
的值添加到列表中,并将列表中的值与v5
相乘并放入结果导入新列v6
,以便最终得到DataFrame
,如下所示:
n v1 v6
0 1 [10, 15, 20]
1 1 [10, 15, 20]
2 1 [10, 15, 20]
我怎样才能在熊猫中实现这一目标?
答案 0 :(得分:19)
你可以这样做一行:
>>> df['v6'] = df[['v2', 'v3', 'v4']].mul(df['v5'], axis=0).values.tolist()
>>> df
v1 v2 v3 v4 v5 v6
0 1 2 3 4 5 [10, 15, 20]
1 1 2 3 4 5 [10, 15, 20]
2 1 2 3 4 5 [10, 15, 20]
这会进行相关的列乘法,将v2
,v3
和v4
值放到列表列表中(逐行)并创建新列{{1 }}