gpt4 book ai didi

pandas - 我们可以在 pandas 列中展开列表吗

转载 作者:行者123 更新时间:2023-12-04 07:43:16 24 4
gpt4 key购买 nike

我有我的 Pandas df 如下所示。它在其中一列中有列表,可以如下展开:?

import pandas as pd
L1 = [['ID1', 0, [0, 1, 1] , [0, 1]],
['ID2', 2, [1, 2, 3], [0, 1]]
]

df1 = pd.DataFrame(L1,columns=['ID', 't', 'Key','Value'])
这可以像下面那样展开吗?
import pandas as pd
L1 = [['ID1', 0, 0, 1, 1 , 0, 1],
['ID2', 2, 1, 2, 3, 0, 1]
]

df1 = pd.DataFrame(L1,columns=['ID', 't', 'Key_0','Key_1','Key_2','Value_0', 'Value_1'])

最佳答案

将系列变成列表,您可以调用 DataFrame 构造函数将它们分解为多个列。使用 popconcat 内的列表理解中将从您的 DataFrame 中删除原始列,以便您只需加入分解的版本。
无论每个列表中的元素数量如何,这都将起作用,即使列表跨行具有不同数量的元素。

df2 = pd.concat(([df1] + [pd.DataFrame(df1.pop(col).tolist(), index=df1.index).add_prefix(f'{col}_')
for col in ['Key', 'Value']]),
axis=1)
print(df2)

ID t Key_0 Key_1 Key_2 Value_0 Value_1
0 ID1 0 0 1 1 0 1
1 ID2 2 1 2 3 0 1

关于pandas - 我们可以在 pandas 列中展开列表吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67335019/

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