gpt4 book ai didi

python - 如何从字典中获取 pandas DataFrame?

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:51 25 4
gpt4 key购买 nike

我有以下字典:

{
'aaa':
{
'x1': 879,
'x2': 861,
'x3': 876,
'x4': 873
},
'bbb':
{
'y1': 700,
'y2': 801,
'y3': 900
}
}`

我需要将它转换成 pandas DataFrame:

col1 col2  col3
aaa x1 879
aaa x2 861
aaa x3 876
aaa x4 873
bbb y1 700
bbb y2 801
bbb y3 900

如果我使用 from_dict 函数,则输出不同。

如何获取如上所示的DataFrame?

最佳答案

尝试堆栈:

d = {
'aaa':
{
'x1': 879,
'x2': 861,
'x3': 876,
'x4': 873
},
'bbb':
{
'y1': 700,
'y2': 801,
'y3': 900
}
}

df = pd.DataFrame(d)
df.stack()

输出:

x1  aaa    879.0
x2 aaa 861.0
x3 aaa 876.0
x4 aaa 873.0
y1 bbb 700.0
y2 bbb 801.0
y3 bbb 900.0
dtype: float64

或获得准确的输出:

df.stack().reset_index().set_axis(['col1', 'col2', 'col3'], axis=1, inplace=False)

输出:

  col1 col2   col3
0 x1 aaa 879.0
1 x2 aaa 861.0
2 x3 aaa 876.0
3 x4 aaa 873.0
4 y1 bbb 700.0
5 y2 bbb 801.0
6 y3 bbb 900.0

或者使用melt:

df.reset_index().melt('index').dropna()

输出:

   index variable  value
0 x1 aaa 879.0
1 x2 aaa 861.0
2 x3 aaa 876.0
3 x4 aaa 873.0
11 y1 bbb 700.0
12 y2 bbb 801.0
13 y3 bbb 900.0

要获得正确的列命名:

df.rename_axis(['col1']).reset_index().melt('col1', var_name='col2',value_name='col3').dropna()

输出:

   col1 col2   col3
0 x1 aaa 879.0
1 x2 aaa 861.0
2 x3 aaa 876.0
3 x4 aaa 873.0
11 y1 bbb 700.0
12 y2 bbb 801.0
13 y3 bbb 900.0

关于python - 如何从字典中获取 pandas DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55462042/

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