将 Pandas DataFrame 中的列组合到 DataFrame 中的列表列
Posted
技术标签:
【中文标题】将 Pandas DataFrame 中的列组合到 DataFrame 中的列表列【英文标题】:Combine columns in a Pandas DataFrame to a column of lists in a DataFrame 【发布时间】:2015-01-24 13:04:23 【问题描述】:考虑以下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]
如何在 Pandas 中实现这一点?
【问题讨论】:
【参考方案1】:您可以像这样在一行中完成:
>>> 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
值放入列表列表(逐行)并创建新列v6
。
【讨论】:
如何对值进行排序然后放入列表中?以上是关于将 Pandas DataFrame 中的列组合到 DataFrame 中的列表列的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Pandas 系列中的多个字典键转换为 DataFrame 中的列?
从 pandas DataFrame 中的列中提取 JSON 数据