熊猫将列表的列拆分为多个新列

时间:2020-06-23 05:58:44

标签: python-3.x pandas

我正在尝试将列表值的列分为不同的列。 你们能给我一些指导怎么做吗?谢谢 在原始数据框中,没有列名(第1列Column2)。我只是命名,以便对这个问题有更好的了解。

Before:
Column 1   Column2
   A       ['2.49', '-2.18', '-3.79']
   B       ['2.56', '-3.02', '-4.92']
   C       ['-0.09', '-1.73', '-3.47']

After:
Column 1   Column2      Column3       Column4
   A       '2.49'       '-2.18'       '-3.79'
   B       '2.56'       '-3.02'       '-4.92'
   C       '-0.09'      '-1.73'       '-3.47'

2 个答案:

答案 0 :(得分:0)

df = pd.DataFrame({'Column 1': ['A', 'B', 'C'],
                   'Column2': [['2.49', '-2.18', '-3.79'], ['2.56', '-3.02', '-4.92'], ['-0.09', '-1.73', '-3.47']]
                  }
                 )

pd.concat([df['Column 1'],
           pd.DataFrame(df['Column2'].to_list(), columns=['Column2', 'Column3', 'Column4'])],
          axis=1)

答案 1 :(得分:-1)

由于第2列的值是列表,因此您实际上不需要拆分或类似的操作,只需选择所需的元素即可。因此,column3将成为列表元素[1],column4将成为列表元素[2],最后将column2转换为列表元素[0]:

df['Column 3'] = df['Column 2'][1]
df['Column 4'] = df['Column 2'][2]
df['Column 2'] = df['Column 2'][0]

我建议重命名它们,以免覆盖“ Column2”并保留所有列。