gpt4 book ai didi

python - 将列表列分解为多列

转载 作者:太空狗 更新时间:2023-10-30 02:25:06 24 4
gpt4 key购买 nike

我有一个 pandas 系列,每个元素都包含一个数组,如下所示:

0            [0, 0]
1 [12, 15]
2 [43, 45]
3 [9, 10]
4 [0, 0]
5 [3, 3]
6 [0, 0]
7 [0, 0]
8 [0, 0]
9 [3, 3]
10 [2, 2]

我想提取所有第一个元素,将它们放在另一个系列或列表中,然后对第二个元素执行相同的操作。我试过做正则表达式:

mySeries.str.extract(r'\[(\d+), (\d+)\]', expand=True)

还有 split :

mySeries.str.split(', ').tolist())

两者都给出 nan 值。我做错了什么?

最佳答案

案例一
列表栏
您将需要 .tolist 该列并将其加载到 DataFrame 中。

pd.DataFrame(df['col'].tolist())

df
col
0 [0, 0]
1 [12, 15]
2 [43, 15]
3 [9, 10]
4 [0, 0]
5 [3, 3]
6 [0, 0]
7 [0, 0]
8 [0, 0]
9 [3, 3]
10 [2, 2]

pd.DataFrame(df['col'].tolist())

0 1
0 0 0
1 12 15
2 43 15
3 9 10
4 0 0
5 3 3
6 0 0
7 0 0
8 0 0
9 3 3
10 2 2

注意:如果您的数据有 NaN,我建议先删除它们:df = df.dropna() 然后按上面所示继续操作。


案例二
表示为列表的字符串列

如果您有 < 100 行,请使用:

df['col'] = pd.eval(df['col'])

然后实现案例1。否则,使用ast:

import ast
df['col'] = df['col'].apply(ast.literal_eval)

然后像以前一样继续。

关于python - 将列表列分解为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264678/

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