将dict列表转换为数据帧时,如果存在相同的dict键,则复制该行

2024-10-03 19:29:46 发布

您现在位置:Python中文网/ 问答频道 /正文

在将包含多个dict列表的列转换为单独的数据帧时,我面临一个问题。转换dict列表时,不同字典中的相同键将被最后一个键的值覆盖

数据帧:

   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

Tags: 数据nameiddf列表字典valuedict
1条回答
网友
1楼 · 发布于 2024-10-03 19:29:46

给定数据帧(我们称之为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)

相关问题 更多 >