当前位置: 首页 > 知识库问答 >
问题:

将dataframe列中的列表拆分为多列[重复]

贝洲
2023-03-14

我有一个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]

请帮我做这件事。预先感谢

共有2个答案

潘高岑
2023-03-14

如果性能很重要,我认为需要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 - 缺失值首先添加删除:

df = pd.DataFrame(df['col1'].dropna().values.tolist())
鲜于雨石
2023-03-14

您可以使用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
 类似资料:
  • 如何将这列列表拆分为两列? 期望的结果:

  • 我有一个非常简单的,其中每个单元格都包含一个列表。我想将列表中的每个元素拆分为它自己的列。我可以通过导出值,然后创建一个新的

  • 理想情况下,我希望这些新列也被命名。

  • 问题内容: 这个问题类似于将 列表切成子列表的列表 ,但是在我的情况下,我想包括每个先前子列表的最后一个元素,作为下一个子列表的第一个元素。并且必须考虑到最后一个元素必须始终至少包含两个元素。 例如: 大小为3的子列表的结果: 问题答案: 通过简单地缩短传递到范围的“ step”参数,可以轻松地将链接的答案中的列表理解用于支持重叠的块: 这个问题的其他访问者可能没有足够的精力来处理输入 列表 (可

  • 我有: 我想要: 似乎在scala中我可以写:< code>df.select($"value。_1 ",$ "值。_2 ",$ "值。_3"),但这在python中是不可能的。 那么有没有好的办法呢?

  • 问题内容: 我有一个如下所示的Pandas数据框: 我正在尝试将列表分成几列,如下所示: 没有值的列(因为列表没有那么长)用空白或NaN或其他内容填充。 我见过类似的回答这一个和其他类似的给它,而他们在长度相等的名单工作,他们都扔错误,当我尝试使用的长度不等的列表中的方法。有什么好办法吗? 问题答案: 尝试: 包括 我们可以通过以下方式确定所有格式: