gpt4 book ai didi

python - 多列的DataFrame tolist

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:10 24 4
gpt4 key购买 nike

如何添加包含当前列列表的新列 'bar4': [[5,1,11],[6,2,22],[5,3,33]] 在以下数据框中。

import pandas as pd

foo1 = (['L1','L1','L2'])
foo2 = ([5,5,6])
foo3 = ([1,1,2])

index = pd.MultiIndex.from_arrays(
[foo1,foo2,foo3], names=['ifoo1','ifoo2','ifoo3']
)
init = pd.DataFrame({
'bar1': [5,6,5],
'bar2': [1,2,3],
'bar3': [11,22,33]
}, index=index)

我最初认为它与 init['barX'] = init.bar1 + init.bar2 类似,但是 int['bar4'] = init.bar1 , init.bar2, init.bar3 绝对不是解决方案。

期望的结果:

 #                 bar1  bar2 bar3 bar4
# foo1 foo2 foo3
# L1 5 1 5 1 11 [5,1,11]
# L1 5 1 6 2 22 [6,2,22]
# L2 6 2 5 3 33 [5,3,33]

最佳答案

我认为您需要通过 values 将值转换为 numpy 数组numpy.ndarray.tolist :

init['bar4'] = init.values.tolist()
print (init)
bar1 bar2 bar3 bar4
ifoo1 ifoo2 ifoo3
L1 5 1 5 1 11 [5, 1, 11]
1 6 2 22 [6, 2, 22]
L2 6 2 5 3 33 [5, 3, 33]

如果需要指定列:

cols = ['bar1','bar2','bar3']
init['bar4'] = init[cols].values.tolist()
print (init)
bar1 bar2 bar3 bar4
ifoo1 ifoo2 ifoo3
L1 5 1 5 1 11 [5, 1, 11]
1 6 2 22 [6, 2, 22]
L2 6 2 5 3 33 [5, 3, 33]

关于python - 多列的DataFrame tolist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com