gpt4 book ai didi

python - 从堆叠的 Pandas 数据框中获取 JSON

转载 作者:行者123 更新时间:2023-12-03 16:47:06 26 4
gpt4 key购买 nike

我有下面的示例数据框:

d = {'key': ['foo', 'foo', 'foo', 'foo', 'bar', 'bar', 'bar', 'bar', 'crow', 'crow', 'crow', 'crow'], 
'count': [12, 3, 5, 5, 3, 1, 4, 1, 7, 3, 8, 2],
'text': ["hello", "i", "am", "a", "piece", "of", "text", "have", "a", "nice", "day", "friends"],
}

}
df = pd.DataFrame(data=d)
df
输出:
    key count   text
0 foo 12 hello
1 foo 3 i
2 foo 5 am
3 foo 5 a
4 bar 3 piece
5 bar 1 of
6 bar 4 text
7 bar 1 have
8 crow 7 a
9 crow 3 nice
10 crow 8 day
11 crow 2 friends
我将数据框堆叠为: df.set_index("key").stack()要得到:
key        
foo count 12
text hello
count 3
text i
count 5
text am
count 5
text a
bar count 3
text piece
count 1
text of
count 4
text text
count 1
text have
crow count 7
text a
count 3
text nice
count 8
text day
count 2
text friends
dtype: object
我现在试图将堆叠的 df 作为 JSON 文件输出,但是当我使用 to_json() 时,我收到错误:
ValueError: Series index must be unique for orient='index'
预期输出为 textcountkey 分组:
[
{
"key": "19",
"values": [
{
text: 'hello',
count: 12
},
{
content: 'i',
count: 3
},
{
content: 'am',
count: 5
},
...
]
]

最佳答案

如评论中所述,您的预期输出不是有效的 JSON 字符串。您需要 "some_key":[...]"key":"bar" 处于同一级别.
例如 groupby :

json_str = json.dumps([ {'key':k, 'values':d.to_dict('records')}
for k,d in df.drop('key',axis=1).groupby(df['key'])
], indent=2)
输出:
[
{
"key": "bar",
"values": [
{
"count": 3,
"text": "piece"
},
{
"count": 1,
"text": "of"
},
{
"count": 4,
"text": "text"
},
{
"count": 1,
"text": "have"
}
]
},
{
"key": "crow",
"values": [
{
"count": 7,
"text": "a"
},
{
"count": 3,
"text": "nice"
},
{
"count": 8,
"text": "day"
},
{
"count": 2,
"text": "friends"
}
]
},
{
"key": "foo",
"values": [
{
"count": 12,
"text": "hello"
},
{
"count": 3,
"text": "i"
},
{
"count": 5,
"text": "am"
},
{
"count": 5,
"text": "a"
}
]
}
]

关于python - 从堆叠的 Pandas 数据框中获取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65567419/

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