用熊猫计算天气高于特定温度的连续天数

时间:2020-05-14 17:48:30

标签: python pandas pandas-groupby cumsum

所以我有一个每日天气数据的数据框,并且温度是否高于0。例如:

| date | temp | pos_temp |

我正在尝试创建一个列,该列具有连续几天的温度之和,且温度高于零。我在0之上的天中创建了一个包含1或0的单点编码列,但在“正”列中用“ 1”计算累计天数有困难。

示例

date      |temp|pos_temp|
2020-04-27|1   |1       |
2020-04-28|-1  |0       | 
2020-04-29|-2  |0       |
2020-04-30|4   |1       |
2020-05-01|7   |1       |
2020-05-02|10  |1       | 
2020-05-03|14  |1       |
2020-05-04|13  |1       |

我正在尝试创建一个这样的列:

date      |temp|pos_temp|cum_above_0
2020-04-27|1   |1       |nan
2020-04-28|-1  |0       |0
2020-04-29|-2  |0       |0
2020-04-30|4   |1       |1
2020-05-01|7   |1       |2
2020-05-02|10  |1       |3
2020-05-03|14  |1       |4
2020-05-04|13  |1       |5

1 个答案:

答案 0 :(得分:3)

您可以遍历数据框的每一行。

temp = pd.DataFrame({'temp':[1, -1, -2, 4, 7, 10, 14, 13]})

count = 0

for index, row in temp.iterrows():
    if row['temp'] > 0:
        count += 1
    else:
        count = 0
    temp.loc[index, 'cum_above_0'] = count



   temp   cum_above_0
0   1     1.0
1   -1    0.0
2   -2    0.0
3   4     1.0
4   7     2.0
5   10    3.0
6   14    4.0
7   13    5.0