我有一个数据框:
County Date Cases
0 Adams 1/20/20 0
1 Adams 1/21/20 550
2 Adams 1/22/20 650
3 Adams 1/23/20 800
4 Adams 1/24/20 900
5 Adams 1/25/20 1000
我想创建一个新列“每天的情况”,我想用索引1和索引0,索引3和索引2 ...等之间的差异填充它,直到整个列都是字段为止。关于如何解决这个问题的任何想法。理想情况下,我希望新输出看起来像这样
County Date Cases Cases Per Day
0 Adams 1/20/20 0 0
1 Adams 1/21/20 550 550
2 Adams 1/22/20 650 100
3 Adams 1/23/20 800 150
4 Adams 1/24/20 900 100
5 Adams 1/25/20 1000 100
答案 0 :(得分:0)
您应该避免遍历pandas DataFrames或Series,而应尝试使用pandas或numpy的矢量化方法。在这里,shift
会有所帮助:
df['Cases Per Day'] = df['Cases'] - df['Cases'].shift().fillna(0).astype('int')
将给出预期的结果,没有(明确的)循环。