python - 将数据框列中的列表拆分为单独的列

标签 python pandas dataframe

我的数据框如下所示

    col1     col2     col3
0  [1, a]  [1, a1]  [1, a2]
1  [2, b]  [2, b1]  [2, b2]
2  [3, c]  [3, c1]  [3, c2]

我需要让它看起来像:

   col1     col2     col3  col4
0  a         a1      a2    1
1  b         b1      b2    2
2  c         c1      c2    3

我的代码

import pandas as pd

d = {'col1':[[1,'a'],[2,'b'],[3,'c']],
     'col2':[[1,'a1'],[2,'b1'],[3,'c1']],
     'col3':[[1,'a2'],[2,'b2'],[3,'c2']]}

df = pd.DataFrame.from_dict(d)

到目前为止,我已经尝试使用 apply(pd.Series) 并通过 for 循环迭代来重​​新分配值,但没有成功

最佳答案

这是一种使用 applymapmap 的方法:

df.applymap(lambda x: x[-1]).assign(col4 = df['col1'].map(lambda x: x[0]))

关于python - 将数据框列中的列表拆分为单独的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67561501/

相关文章:

python - 如何在 discord.py 中使用 cogs?

python - 在redis中,如何删除一个键并同时获取它的值

python - dataframe.idxmax() - 前 N 次出现

python pandas dataframe 将字符串值的末尾替换为另一个字符

python - 将十六进制流转换为阿拉伯语字符串

python - 常量实例变量?

python - 如果我需要获取混合类型的列怎么办?

python - 将 float Series 中的所有元素转换为整数

select - 总结 R 数据框中的分组记录(...再次)

python - 如果某些行不存在于其他数据帧中,Pandas 连接两个数据帧并保留一个数据集中的数据