pandas 使用dict将panda转换为json以给予附加索引

vbopmzt1  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(160)

我正在尝试将csv更改为json。
我的Pandas数据框有一个名为['数字','地址','纬度','经度']的列

number address lat   long
1       blah   37.1  127.2
2       doh    37.2  127.1

尝试将json更改为

[
    {
    "number":1
    "address":"blahblah"
    "location": {
       "lat": 37.1
       "long": 127.2
        }
      }, 
    {
    "number":1
    "address":"doh"
    "location": {
       "lat": 37.2
       "long": 127.1
        }
      },....
    ]

我发现我可以在Pandas上使用multiindex或者Pandas-〉dict-〉json。
但是,问题是'number'和'address'不属于任何层次,只有'lat'和'long'属于任何层次,那么我应该使用panda-〉dict-〉json方法吗?下面的方法失败了。

df.groupby('number','address',('location')[['long', 'lat']]).apply(lambda g: g.to_dict(orient='record')).to_dict()
jum4pzuy

jum4pzuy1#

假设df是存储 Dataframe 的变量。

import json

df['location'] = df.apply(lambda x:{'lat':x['lat'],'long':x['long']}, axis=1)
df = df.drop(['lat','long'], axis=1)

print(json.dumps(df.to_dict(orient='records'), indent=2))

输出量:

[
  {
    "number": 1,
    "address": "blah",
    "location": {
      "lat": 37.1,
      "long": 127.2
    }
  },
  {
    "number": 2,
    "address": "doh",
    "location": {
      "lat": 37.2,
      "long": 127.1
    }
  }
]

相关问题