将数据框列中的列表拆分为多列[重复]

Posted

技术标签:

【中文标题】将数据框列中的列表拆分为多列[重复]【英文标题】:Split lists within dataframe column into multiple columns [duplicate] 【发布时间】:2018-10-31 22:40:47 【问题描述】:

我有一个 Pandas DataFrame 列,其中包含多个列表。像这样的:

df
     col1
0    [[1,2], [2,3]]
1    [[a,b], [4,5], [x,y]] 
2    [[6,7]]

我想将列表拆分为多列,所以输出应该是这样的:

    col1    col2     col3
0   [1,2]   [2,3]   
1   [a,b]   [4,5]    [x,y]
2   [6,7]

请帮我解决这个问题。在此先感谢

【问题讨论】:

【参考方案1】:

你可以使用pd.Series.apply:

df = pd.DataFrame('col1': [[[1, 2], [2, 3]],
                            [['a', 'b'], [4, 5], ['x', 'y']],
                            [[6, 7]]])

res = df['col1'].apply(pd.Series)

print(res)

        0       1       2
0  [1, 2]  [2, 3]     NaN
1  [a, b]  [4, 5]  [x, y]
2  [6, 7]     NaN     NaN

【讨论】:

【参考方案2】:

如果性能很重要,我认为需要DataFrame 构造函数:

df = pd.DataFrame(df['col1'].values.tolist())
print (df)
        0       1       2
0  [1, 2]  [2, 3]    None
1  [a, b]  [4, 5]  [x, y]
2  [6, 7]    None    None

如果需要删除NaNs - 缺失值首先添加dropna

df = pd.DataFrame(df['col1'].dropna().values.tolist())

【讨论】:

以上是关于将数据框列中的列表拆分为多列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将数据框列中的值附加到列表

Pandas使用split函数基于指定分隔符拆分数据列的内容为列表设置expand参数将拆分结果列表内容转化为多列数据并添加到原数据中replace函数基于正则表达式替换字符串数据列中的匹配内容

将 Pandas 单元格中的列表拆分为多列 [重复]

将对象转换为数据框列中的日期时间[重复]

将熊猫数据框列列表值拆分为重复行[重复]

根据每个句子的第一个单词将 pandas 数据框列中的字符串列表分解为新列