所以我有一个每日天气数据的数据框,并且温度是否高于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
答案 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