簡體   English   中英

如何使用一列值作為鍵從數據幀在 Pandas 中創建嵌套的 json?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM