如何解决当有相同的字典键时将行复制,同时将字典列表转换为数据框
将包含多个字典列表的列转换为单独的熊猫DataFrame时遇到问题。转换字典列表时,不同字典中的相同键会被最后一个键的值覆盖。
数据框:
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创建新的数据框
df_c = df['Column2'].apply(pd.Series)
它给了我一个像这样的数据框
id id_name value
44974 sub_color Greenish Yellow
我想要的数据框在哪里
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)