gpt4 book ai didi

python - 如何将 Pandas 数据框列映射到嵌套字典

转载 作者:行者123 更新时间:2023-11-30 22:33:25 24 4
gpt4 key购买 nike

我有以下包含各种类的嵌套字典,其中包含一组键值对...

['Class1': ['Param1': '0', 'Param2': '1', 'Param3': '2'], 'Class2': ['Param1': '4', 'Param2': '5', 'Param3': '6']]

我想将嵌套字典映射到 pandas 数据框中的新列,如下所示......

Class,Param
Class1,Param1
Class2,Param1
Class1,Param2
Class2,Param2
Class1,Param3
Class2,Param3

我不确定是否可以使用 pandas 中的 map 函数来完成此操作,我可以使用简单的字典执行以下操作

df['new_column'] = df['Param'].map(dict)

但我不确定如何将列映射到嵌套字典...

最佳答案

我认为您需要通过 DataFrame 构造函数使用 unstack 创建 Series , rename_axis ,创建 Series 的名称,然后创建 join :

d = {'Class1': {'Param1': '0', 'Param2': '1', 'Param3': '2'}, 
'Class2': {'Param1': '4', 'Param2': '5', 'Param3': '6'}}

s = pd.DataFrame(d).unstack().rename_axis(('Class','Param')).rename('new_column')
print (s)
Class Param
Class1 Param1 0
Param2 1
Param3 2
Class2 Param1 4
Param2 5
Param3 6
Name: new_column, dtype: object

df = df.join(s, on=['Class','Param'])
print (df)
Class Param new_column
0 Class1 Param1 0
1 Class2 Param1 4
2 Class1 Param2 1
3 Class2 Param2 5
4 Class1 Param3 2
5 Class2 Param3 6
<小时/>
d = {'Class1': {'Param1': '0'}, 
'Class2': {'Param1': '4', 'Param2': '5', 'Param3': '6'}}

s = pd.DataFrame(d).unstack().rename_axis(('Class','Param')).rename('new_column')
print (s)
Class Param
Class1 Param1 0
Param2 NaN
Param3 NaN
Class2 Param1 4
Param2 5
Param3 6
Name: new_column, dtype: object

df = df.join(s, on=['Class','Param'])
print (df)
Class Param new_column
0 Class1 Param1 0
1 Class2 Param1 4
2 Class1 Param2 NaN
3 Class2 Param2 5
4 Class1 Param3 NaN
5 Class2 Param3 6

关于python - 如何将 Pandas 数据框列映射到嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45161220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com