计算每月熊猫的条目数

时间:2021-04-05 05:46:05

标签: python pandas dataframe

我有一个 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 中,即 1 月、2 月等的“开始”条目数给我:

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()

1 个答案:

答案 0 :(得分:0)

Groupby.countSeries.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