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

如何在pandas data-frame中将包含列表的列转换为单独的列?[重复]

浦墨竹
2023-03-14

我有一个数据框,其中一列包含一个列表。

             A         B
0            5    [3, 4]
1            4    [1, 1]
2            1    [7, 7]
3            3    [0, 2]
4            5    [3, 3]
5            4    [2, 2]

输出应如下所示:

             A      x    y
0            5      3    4
1            4      1    1
2            1      7    7
3            3      0    2
4            5      3    3
5            4      2    2

我已经尝试了我在这里找到的这些选项,但不起作用。

共有1个答案

邵弘义
2023-03-14
df = pd.DataFrame(data={"A":[0,1],
                       "B":[[3,4],[1,1]]})
df['x'] = df['B'].apply(lambda x:x[0])
df['y'] = df['B'].apply(lambda x:x[1])
df.drop(['B'],axis=1,inplace=True)
    A   x   y
0   0   3   4
1   1   1   1
from ast import literal_eval
df = pd.DataFrame(data={"A":[0,1],
                       "B":['[3,4]','[1,1]']})
df['x'] = df['B'].apply(lambda x:literal_eval(x)[0])
df['y'] = df['B'].apply(lambda x:literal_eval(x)[1])
df.drop(['B'],axis=1,inplace=True)
df = pd.DataFrame(data={"A":[0,1],
                       "B":['[3,4]','[1,1]']})
df["B"] = df["B"].apply(lambda x :literal_eval(x))
df[['A']].join(pd.DataFrame(df["B"].values.tolist(),columns=['x','y'],index=df.index))
df.drop(["B"],axis=1,inplace=True)

 类似资料:
  • 在我的Spring Boot项目中,我有两个类(实体和模型) 在模型中有一个列表 :

  • 如何使用stream转换下面的代码而不使用for each循环。 getAllSubjects()返回所有列表,每个主题都有。所有列表应合并为。 需要从中获取 对象模型:

  • 问题内容: 如果我有一个,如何通过使用Java 8的功能将其转换为以相同的迭代顺序包含所有对象的? 问题答案: 你可以用于将内部列表(将它们转换为Streams之后)展平为单个Stream,然后将结果收集到列表中:

  • 问题内容: 现在,我想创建一个新列表,其中包含中的所有值。这里的结果应该包含 问题答案: 使用以下方法尝试:

  • 如何将包含key:pair值(如{Hello:3,Bye:4})的字典转换为两个不同的列表?一个用于键,一个用于值? 谢谢

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: 在python中拆分字符串 我要更改此: 对此: 我尝试了一些for和while循环,但无法做到这一点。我只希望在触发制作下一个元素时删除换行符。有人告诉我使用: 这使 在此之后,我只使用了一个,而使颜色拼写变得更加复杂。 问题答案: 您想要,或者可能只是 使用for循环-仅供指导使用: