[英]How can I create a Python dictionary with multiple values for one key from a list, to then create a pandas dataframe with one column and multiple rows
[英]How can i create a nested json in pandas from a dataframe using one column value as key?
我有一個如下所示的數據框 df:
col1 | col2| col3| col4| col5
_____|_____|_____|_____|______
1 | X | A | a | x
1 | X | B | b | y
我需要將其轉換如下:
{'col1':'1', 'col2':'X' , 'A':{ 'col4':'a', 'col5':'x'}, 'B':{'col4':'b', 'col5':'y'}}
我試過下面的代碼:
json= df.groupby(['col1,'col2'],as_index='False')[['col3','col4','col5']]
.apply(lambda x:x.set_index('col3').to_dict(orient='index'))
.reset_index()
.to_json(orient='records'))
它給了我輸出:
[{'col1':'1', 'col2':'X' ,'0':{ 'A':{ 'col4':'a', 'col5':'x'}, 'B':{'col4':'b', 'col5':'y'} }}]
我曾嘗試使用to_dict
代替to_json
但效果不佳。 以上是我最接近我的要求。 我假設“0”代表索引。 有什么辦法可以去掉嗎?
用:
json= (df.groupby(['col1','col2','col3'],as_index='False')[['col4','col5']]
.apply(lambda x: dict(x.values))
.unstack()
.reset_index()
.to_json(orient='records')
)
print (json)
[{"col1":1,"col2":"X","A":{"a":"x"},"B":{"b":"y"}}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.