Python 如何将数据帧导出为具有NaN值的JSON?

Python 如何将数据帧导出为具有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", "

我想使用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": 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'))