首页 > 解决方案 > 7天差异的Python增量

问题描述

我有一个数据框 df,我想计算 7 天时间段内的增量:

  Monday   Tuesday   Wednesday   Thursday   Friday    Sat     Sun   

  5        10         15         20         25        30      35

  1        2          3           4         5         6       7

我想找到第一行的增量,从星期一 (5) 开始,到太阳 (35) 结束

前 7 天时间段的增量为: 35 - 5 = 30

接下来的 7 天窗口增量将是: 7 - 1 = 6,依此类推

该日期将从 2020 年1 月 1 日开始,并以 7 天或每周为增量继续

所需的输出:(具有新创建的 Date 和 Delta 列的新数据框)

   Date                  Delta

   1/1/2020              30
   1/8/2020              6

这就是我正在做的事情:

  import pandas as pd
  import numpy as np

  df = pd.read_csv('df.csv')

  df['Delta'] = df['Sunday'] - df['Monday]
  df['Date'] = pd.date_range(start='1/1/2020', periods=len(df), freq='Weeks')




 df2.to_csv('df2.csv')

任何建议表示赞赏

标签: pythonpandasnumpy

解决方案


# necessary imports
import datetime
import pandas

可以做:

numdays=5
base = datetime.datetime(2020,1,1)
date_list = [base + datetime.timedelta(days=7*x) for x in range(numdays)]

然后:

df=pd.DataFrame({'Date':date_list})

如果您有另一个值列表,即Deltas_list您想要包含在此数据框中:

Deltas_list=[0,1,2,3,4]
Deltas=pd.Series(Deltas_list)
df['Delta']=Deltas

df 将是:

    Date    Delta
0   2020-01-01  0
1   2020-01-08  1
2   2020-01-15  2
3   2020-01-22  3
4   2020-01-29  4

推荐阅读