以下是一个示例代码,用于按userid和月份进行统计,并选择以月份为列的月份数:
import pandas as pd
# 创建示例数据
data = {'userid': [1, 1, 1, 2, 2, 3],
'date': ['2021-01-01', '2021-01-15', '2021-02-01', '2021-01-10', '2021-02-05', '2021-02-15'],
'amount': [100, 200, 150, 300, 250, 100]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型,并提取月份
df['date'] = pd.to_datetime(df['date'])
df['month'] = df['date'].dt.month
# 按userid和月份进行统计求和
result = df.groupby(['userid', 'month']).sum()
# 重塑数据框,以月份为列
result_pivot = result.pivot_table(index='userid', columns='month', values='amount', fill_value=0)
print(result_pivot)
运行上述代码,将得到按userid和月份进行统计求和,并选择以月份为列的月份数的结果。输出结果类似于以下格式:
month 1 2
userid
1 300 150
2 300 250
3 0 100
其中,行表示userid,列表示月份,每个单元格表示对应userid和月份的求和结果。如果某个userid在某个月份没有数据,则填充为0。