【问题标题】:Counting number of entries per month pandas计算每个月的条目数 pandas
【发布时间】:2021-04-05 13:51:29
【问题描述】:

我有一个 df 格式:

   start        end         
0  2020-01-01   2020-01-01
1  2020-01-01   2020-01-01
2  2020-01-02   2020-01-02
 ...
57 2020-04-01   2020-04-01
58 2020-04-02   2020-04-02

我想计算每个月的条目数并将其放入新的 df 中,即一月、二月等的“开始”条目数,给我:

Month    Entries
2020-01   3
...
2020-04   2

我目前正在尝试这样的事情,但这不是我需要的:

df.index = pd.to_datetime(df['start'],format='%Y-%m-%d')
df.groupby(pd.Grouper(freq='M'))
df['start'].value_counts()

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    将Groupby.count 与Series.dt 一起使用:

    In [1282]: df
    Out[1282]: 
             start         end
    0   2020-01-01  2020-01-01
    1   2020-01-01  2020-01-01
    2   2020-01-02  2020-01-02
    57  2020-04-01  2020-04-01
    58  2020-04-02  2020-04-02
    
    # Do this only when your `start` and `end` columns are object. If already datetime, you can ignore below 2 statements
    In [1284]: df.start = pd.to_datetime(df.start)   
    In [1285]: df.end = pd.to_datetime(df.end)
    
    In [1296]: df1 = df.groupby([df.start.dt.year, df.start.dt.month]).count().rename_axis(['year', 'month'])['start'].reset_index(name='Entries')
    
    In [1297]: df1
    Out[1297]: 
       year  month  Entries
    0  2020      1        3
    1  2020      4        2
    

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      相关资源
      最近更新 更多