【发布时间】:2019-09-23 14:15:54
【问题描述】:
我有一个如下的数据框:
Date Quantity
2019-04-25 100
2019-04-26 148
2019-04-27 124
我需要的输出是取两个下一个日期之间的数量差异和 24 小时内的平均值,并创建 23 列,并将每小时数量差异添加到之前的列中,如下所示:
Date Quantity Hour-1 Hour-2 ....Hour-23
2019-04-25 100 102 104 .... 146
2019-04-26 148 147 146 .... 123
2019-04-27 124
我正在尝试迭代一个循环,但它不起作用,我的代码如下:
for i in df.index:
diff=(df.get_value(i+1,'Quantity')-df.get_value(i,'Quantity'))/24
for j in range(24):
df[i,[1+j]]=df.[i,[j]]*(1+diff)
我做了一些研究,但我还没有找到如何迭代地创建像上面这样的列。我希望你能帮助我。提前谢谢你。
【问题讨论】:
-
这里的每小时是怎么计算的?
-
对于第 2019-04-25 行,Hour-1=100+(148-100)/24=102; Hour-2=Hour-1+(148-100)/24=102+2=104
标签: python-3.x pandas loops dataframe for-loop