聚合熊猫行并存储为字典或其他合适的数据类型



我有熊猫DataFrame,我试图聚合并存储为dicts的选择列。

import pandas as pd
df = pd.DataFrame({
'id': [1, 1, 2],
'lat': [37.7825, 37.7825, 37.7836],
'lon': [-122.4148, -122.4148, -122.4127],
'b': [1, 2, 1],
'r': [1000, 1300, 1100],
's': [650, 720, 600]
})

我想聚合数据框,这样b,rs的每个唯一组合都存储为集合,list of dicts在一列中。

考虑b,rs中的NaNs等任何边缘情况。如果是NaNs,那么不要将它们存储为字典。

预期输出:

id lat      lon        new
1  37.7825  -122.4148  [{'b': 1, 'r': 1000, 's': 650}, {'b': 2, 'r': 1300, 's': 720}]
2  37.7836  -122.4127  [{'b': 1, 'r': 1100, 's': 600}]

您可以将to_dict称为" records"ingroupby.apply:

out = df.groupby(['id','lat','lon'])[['b','r','s']].apply(lambda x: x.to_dict('records')).reset_index(name='new')

输出:

id      lat       lon                                                             new
0   1  37.7825 -122.4148  [{'b': 1, 'r': 1000, 's': 650}, {'b': 2, 'r': 1300, 's': 720}]
1   2  37.7836 -122.4127                                 [{'b': 1, 'r': 1100, 's': 600}]

相关内容

  • 没有找到相关文章

最新更新