Python 如何将数据帧导出为具有NaN值的JSON?
我想使用groupby将以下数据帧转换为JSONPython 如何将数据帧导出为具有NaN值的JSON?,python,pandas,dataframe,Python,Pandas,Dataframe,我想使用groupby将以下数据帧转换为JSON ID,Location,Country,Latitude,Longitude,tide 8,WISMAR 2,DEU,53.8,11.4,69.0 8,WISMAR 2,DEU,53.8,11.4,68.0 10,SAN FRANCISCO,USA,37.8,-122.4,NaN Something like this: [ { "Country": "DEU", "
ID,Location,Country,Latitude,Longitude,tide
8,WISMAR 2,DEU,53.8,11.4,69.0
8,WISMAR 2,DEU,53.8,11.4,68.0
10,SAN FRANCISCO,USA,37.8,-122.4,NaN
Something like this:
[
{
"Country": "DEU",
"ID": 8,
"Latitude": 53.8,
"Location": "WISMAR 2",
"Longitude": 11.4,
"Tide-Data": [{"Tide": 69}, {"Tide": 68}]
},
{
"Country": "USA",
"ID": 10,
"Latitude": 37.8,
"Location": "SAN FRANCISCO",
"Longitude": -122.4,
"Tide-Data": []
}
下面的代码可以工作。但是,我希望使用一个空数组,而不是[“Tide”:NaN],其中字段平铺的值为NaN。谁能告诉我怎么做吗
j = (df.groupby(['ID','Location','Country','Latitude','Longitude'])
.apply(lambda x: x[['tide']].to_dict('r'))
.reset_index()
.rename(columns={0:'Tide-Data'})
.to_json(orient='records'))
非常感谢。您就快到了,只需添加
dropna()
:
j = (df.groupby(['ID', 'Location', 'Country', 'Latitude', 'Longitude'])
.apply(lambda x: x[['tide']].dropna().to_dict('r'))
.reset_index()
.rename(columns={0: 'Tide-Data'})
.to_json(orient='records'))