根据年月计算行数,并从最旧到最新排序

Count rows based on year-month and sort it from oldest to newest

我有一个这样的 df:

data = {'date':['2019-01-01', '2019-01-02', '2020-01-01', '2020-02-02'],
        'tweets':["aaa", "bbb", "ccc", "ddd"]}

df = pandas.DataFrame(data)

df['daate'] = pandas.to_datetime(df['date'], infer_datetime_format=True)

所以我有一个 object 类型的日期和一个 datetime64[ns] 类型的日期。我想知道每个年月的行数,例如 2019-01 中的两行,2020-01 和 2020-02 中的一行。我还想根据日期对数据进行排序,从最旧到最新。谢谢大家!

你可以使用groupby来统计行数

df['year-month'] = df['daate'].dt.strftime('%Y-%m')
df.groupby('year-month').count()
            date    tweets  daate
year-month          
2019-01     2       2       2
2020-01     1       1       1
2020-02     1       1       1

这里是sort_values,ascending=True表示从低到高,False表示从高到低

df.sort_values(by='daate',ascending=True)