首页 > 解决方案 > 如何将外部时间序列数据分组在一起

问题描述

我一直在尝试将一些状态数据分组在一起。例如,这就是我的数据的样子,以 Date 作为索引,其余的是特征:

日期 人口 Num_Men Num_Women 状态 地区
2020-01-01 500 300 200 纽约
2020-02-01 800 500 300 总帐 中间
2020-02-01 1000 400 600 “” 中间
2020-02-01 200 50 150 中间
2020-02-01 600 400 200 纽约

我知道如何将纽约州的州分组,但如果我想将具有州值的那些分组:GL、“”和 nan 一起。我不知道该怎么做。

我一直在寻找最终结果,如下所示:

日期 人口 Num_Men Num_Women 状态 地区
2020-01-01 500 300 200 纽约
2020-02-01 2000 950 1050 总帐 中间
2020-02-01 600 400 200 纽约

我做了这样的事情:df.groupby(df.index,{'State':[“GL”,“”,np.nan]},但这不起作用。任何帮助将不胜感激!谢谢!

标签: pandasdataframegroup-byaggregategrouping

解决方案


replace那么让我们groupbysumfirst

df.State = df.State.replace({"''":np.nan,'nan':np.nan})
out = df.groupby(['Region','Date'],as_index=False).\      
          agg({'Population':'sum',
               'Num_Men':'sum',
               'Num_Women':'sum',
               'State':'first'})
Out[99]: 
   Region        Date  Population  Num_Men  Num_Women State
0  Middle  2020-02-01        2000      950       1050    GL
1   North  2020-01-01         500      300        200    NY
2   North  2020-02-01         600      400        200    NY

推荐阅读