Pandas 滑窗函数统计账户交易金额:每天、每三天、每五天
本文将介绍如何使用 Pandas 滑窗函数统计账户交易金额,实现对每天、每三天、每五天交易金额的汇总。
假设你有一个 DataFrame,包含日期、账户和金额特征。你需要根据日期使用滑窗函数统计每个账户的每天、每三天和每五天的交易金额,并将结果放入新的表中。
步骤:
- 导入所需的库:
import pandas as pd
- **准备数据:**假设你的原始数据框名为
df,包含列 '日期'、'账号' 和 '金额'。首先,将 '日期' 列转换为日期时间类型:
df['日期'] = pd.to_datetime(df['日期'])
- **创建新的数据框:**创建一个新的数据框
new_df,用于存储统计结果:
new_df = pd.DataFrame()
- **使用滑窗函数统计:**对于每个账户,使用滑窗函数来进行统计。可以使用 Pandas 的
groupby()函数来按账户进行分组,并使用rolling()函数来创建滑窗对象。计算每天、每三天和每五天的交易金额,然后将结果添加到new_df中:
grouped = df.groupby('账号')
# 每天的交易金额
new_df['每天交易金额'] = grouped['金额'].sum()
# 每三天的交易金额
new_df['每三天交易金额'] = grouped['金额'].rolling(window=3, min_periods=1).sum().reset_index(drop=True)
# 每五天的交易金额
new_df['每五天交易金额'] = grouped['金额'].rolling(window=5, min_periods=1).sum().reset_index(drop=True)
在上述代码中,groupby() 函数将数据按照账户进行分组,然后使用 rolling() 函数创建滑窗对象,window 参数指定滑窗大小,min_periods 参数指定至少有多少个非缺失值才进行计算。sum() 函数用于计算交易金额的总和。reset_index(drop=True) 用于重置索引并删除原始索引。
- **保存结果:**最后,将
new_df保存到新的表中(可以将结果保存为 CSV 文件):
new_df.to_csv('统计结果.csv', index=False)
在上述代码中,to_csv() 函数将数据保存为 CSV 文件,index=False 表示不将索引保存到文件中。
希望这可以帮助你!
原文地址: https://www.cveoy.top/t/topic/k8k 著作权归作者所有。请勿转载和采集!