当有相同的字典键时将行复制,同时将字典列表转换为数据框

问题描述

将包含多个字典列表的列转换为单独的熊猫DataFrame时遇到问题。转换字典列表时,不同字典中的相同键会被最后一个键的值覆盖。

数据框:

@H_404_4@ Column1 Column2 0 std_123 [{ 'id': '14633','id_name': 'Color','id_value': '86942','id_value_name': 'Yellow' },{ 'id': '44974','id_name': 'sub_color','id_value': '2752911','id_value_name': 'Greenish Yellow' }]

当我尝试从column2创建新的数据框

@H_404_4@df_c = df['Column2'].apply(pd.Series)

它给了我一个像这样的数据框

@H_404_4@id id_name value 44974 sub_color Greenish Yellow

我想要的数据框在哪里

@H_404_4@column1 id id_name value std_123 14633 Color Yellow std_123 44974 sub_color Greenish Yellow

解决方法

给出您的数据框(我们称其为df)

  Column1        Column2
0  std_123        [{
                       'id': '14633','id_name': 'Color','id_value': '86942','id_value_name': 'Yellow'
                   },{
                       'id': '44974','id_name': 'sub_color','id_value': '2752911','id_value_name': 'Greenish Yellow'
                   }]

使用以下命令获取所需的数据帧

l = [y for x in df["Column2"] for y in x] 
df_1 = pd.DataFrame(l)