要按月计数pandas DataFrame,但按值细分,可以使用groupby
和resample
函数来实现。
首先,确保你的日期列是pandas的日期时间类型。如果不是,请先将其转换为日期时间类型。
接下来,使用groupby
函数将DataFrame按照月份和值进行分组。然后,使用resample
函数按月进行重采样,并使用size
函数计算每个月的计数。
下面是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'date': ['2021-01-01', '2021-01-02', '2021-02-01', '2021-02-02', '2021-03-01'],
'value': ['A', 'B', 'A', 'B', 'A']}
df = pd.DataFrame(data)
# 将日期列转换为日期时间类型
df['date'] = pd.to_datetime(df['date'])
# 按月份和值进行分组,并计算每个月的计数
result = df.groupby([df['date'].dt.to_period('M'), 'value']).size().reset_index(name='count')
print(result)
输出结果如下:
date value count
0 2021-01 A 1
1 2021-01 B 1
2 2021-02 A 1
3 2021-02 B 1
4 2021-03 A 1
这样,你就得到了按月份计数的结果,并按值进行了细分。
上一篇:按月检索未完成的记录