【发布时间】:2015-04-22 22:20:14
【问题描述】:
我很难解决 dataframe 或 groupby 中的回顾或翻转问题。
以下是我拥有的数据框的一个简单示例:
fruit amount
20140101 apple 3
20140102 apple 5
20140102 orange 10
20140104 banana 2
20140104 apple 10
20140104 orange 4
20140105 orange 6
20140105 grape 1
…
20141231 apple 3
20141231 grape 2
我需要每天计算前3天每种水果的“数量”平均值,并创建以下数据框:
fruit average_in_last 3 days
20140104 apple 4
20140104 orange 10
...
例如20140104,前3天分别是20140101、20140102和20140103(注意数据框中的日期不连续,20140103不存在),平均苹果数量为(3+5)/2 = 4,橙色为 10/1=10,其余为 0。
示例数据框非常简单,但实际数据框要复杂得多且更大。希望有人能对此有所了解,提前谢谢!
【问题讨论】:
-
这是两个问题:分别查看水果和对不规则数据进行滚动平均。第一个由 `groupby' 函数处理,如 stackoverflow.com/questions/22615288/…,第二个在 pandas 中还不能自动工作:请参阅 stackoverflow.com/questions/15771472/… 中的一些方法。
-
对于示例来说,苹果应该是 (3+5+0)/3 = 2.67。这样做会让事情变得更容易。
-
不规则采样是我遇到的一个问题,我确实需要通过 (3+5)/2=4 来计算。
标签: python pandas group-by dataframe apply