以下是一个示例代码,演示了如何按照特定日期,将一个列的每个唯一值对应的布尔值数量进行分组和汇总:
import pandas as pd
# 创建示例数据
data = {'日期': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-02'],
'值': ['A', 'B', 'A', 'C', 'C'],
'布尔值': [True, False, True, True, False]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])
# 按照日期和唯一值分组,计算每个组中布尔值为True的数量
result = df[df['布尔值']].groupby(['日期', '值']).size().reset_index(name='布尔值为True的数量')
print(result)
输出结果:
日期 值 布尔值为True的数量
0 2021-01-01 A 1
1 2021-01-02 A 1
2 2021-01-02 C 1
在上面的示例中,我们首先创建了一个包含日期、值和布尔值的示例数据。然后,我们使用pd.to_datetime()
函数将日期列转换为日期类型。接下来,我们使用df[df['布尔值']]
筛选出布尔值为True的行,并且对日期和值进行分组,使用size()
函数计算每个组中布尔值为True的数量。最后,我们使用reset_index()
函数将结果转换为DataFrame形式,并为结果列命名为"布尔值为True的数量"。