gpt4 book ai didi

python - 来自字典列表的字典的数据框?

转载 作者:行者123 更新时间:2023-12-04 10:15:19 25 4
gpt4 key购买 nike

我有一个字典列表的字典。将其转换为 DataFrame 的最有效方法是什么?在 Pandas ?

data = {
"0a2":[{"a":1,"b":1},{"a":1,"b":1,"c":1},{"a":1,"b":1}],
"279":[{"a":1,"b":1,"c":1},{"a":1,"b":1,"d":1}],
"ae2":[{"a":1,"b":1},{"a":1,"d":1},{"a":1,"b":1},{"a":1,"d":1}],
#...
}
import pandas as pd
pd.DataFrame(data, columns=["a","b","c","d"])

dat

我试过的:

一种解决方案是通过复制“id”键来像这样对数据进行非规范化:
bad_data = [
{"a":1,"b":1,"id":"0a2"},{"a":1,"b":1,"c":1,"id":"0a2"},{"a":1,"b":1,"id":"0a2"},
{"a":1,"b":1,"c":1,"id":"279"},{"a":1,"b":1,"d":1,"id":"279"},
{"a":1,"b":1,"id":"ae2"},{"a":1,"d":1,"id":"ae2"},{"a":1,"b":1,"id":"ae2"},{"a":1,"d":1,"id":"ae2"}
]
pd.DataFrame(bad_data, columns=["a","b","c","d","id"])

但是我的数据非常大,所以我更喜欢其他一些分层索引解决方案。

最佳答案

IIUC,你可以做(​​推荐)

new_df = pd.concat((pd.DataFrame(d) for d in data.values()), keys=data.keys())

输出:
       a    b    c    d
0a2 0 1 1.0 NaN NaN
1 1 1.0 1.0 NaN
2 1 1.0 NaN NaN
279 0 1 1.0 1.0 NaN
1 1 1.0 NaN 1.0
ae2 0 1 1.0 NaN NaN
1 1 NaN NaN 1.0
2 1 1.0 NaN NaN
3 1 NaN NaN 1.0

或者
pd.concat(pd.DataFrame(v).assign(ID=k) for k,v in data.items())

输出:
   a    b    c   ID    d
0 1 1.0 NaN 0a2 NaN
1 1 1.0 1.0 0a2 NaN
2 1 1.0 NaN 0a2 NaN
0 1 1.0 1.0 279 NaN
1 1 1.0 NaN 279 1.0
0 1 1.0 NaN ae2 NaN
1 1 NaN NaN ae2 1.0
2 1 1.0 NaN ae2 NaN
3 1 NaN NaN ae2 1.0

关于python - 来自字典列表的字典的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61088587/

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