Python 大熊猫滚动30天
我有一个数据集:Python 大熊猫滚动30天,python,pandas,Python,Pandas,我有一个数据集: import pandas as pd df = pd.DataFrame({ 'ID': ['27459', '27459', '27459', '27459', '27459', '27459', '27459', '48002', '48002', '48002'], 'Invoice_Date': ['2020-06-26', '2020-06-29', '2020-06-30', '2020-07-14', '2020-07-25
import pandas as pd
df = pd.DataFrame({
'ID': ['27459', '27459', '27459', '27459', '27459', '27459', '27459', '48002', '48002', '48002'],
'Invoice_Date': ['2020-06-26', '2020-06-29', '2020-06-30', '2020-07-14', '2020-07-25',
'2020-07-30', '2020-08-02', '2020-05-13', '2020-06-20', '2020-06-28'],
'Difference_Date': [0,3,1,14,11,5,3,0,38,8],
})
df
我需要添加另一列,即滚动30天期间的平均值。我尝试使用滚动
,但它给了我错误窗口必须是整数
。由于这是基于客户的数据,因此也需要按ID
分组
我的预期产出是:
ID Invoice_Date Difference_Date Average
0 27459 2020-06-26 0 0.00
1 27459 2020-06-29 3 1.50
2 27459 2020-06-30 1 1.33
3 27459 2020-07-14 14 4.50
4 27459 2020-07-25 11 5.80
5 27459 2020-07-30 5 10.00
6 27459 2020-08-02 3 8.25
7 48002 2020-05-13 0 0.00
8 48002 2020-06-20 38 38.00
9 48002 2020-06-28 8 23.00
计算滚动30天的平均值是否有任何有效的解决方法?这是因为熊猫需要进行
df。滚动('30D')
:
这回答了你的问题吗?这回答了你的问题吗?如果我也需要根据ID对其进行排序,该怎么办?使用滚动索引计算您需要的内容,然后根据ID进行排序?您能否澄清为什么需要按ID排序?因为数据是基于客户的数据。因此,滚动30天应该根据每个客户计算。这听起来像一个groupby:try
df.groupby('ID')。滚动('30D')
import pandas as pd
df = pd.DataFrame({
'ID': ['27459', '27459', '27459', '27459', '27459', '27459', '27459', '48002', '48002', '48002'],
'Invoice_Date': ['2020-06-26', '2020-06-29', '2020-06-30', '2020-07-14', '2020-07-25',
'2020-07-30', '2020-08-02', '2020-05-13', '2020-06-20', '2020-06-28'],
'Difference_Date': [0,3,1,14,11,5,3,0,38,8],
})
df.index = pd.DatetimeIndex(df['Invoice_Date'])
df = df.sort_index()
df.rolling('30D')