当列值在Pandas中发生大量更改时进行检查

pkln4tw6  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(130)

我希望编写一些代码来检查列值的变化何时超过特定数量,例如超过20%
例如:

# |  A   | 
--+------+
1 |  20  |  
2 |  21  |  
3 |  20  |  
4 |  22  |  
5 |  35  | 
6 |  25  |

它将标记行5

7cwmlq89

7cwmlq891#

您可以使用如下代码:

df=pd.DataFrame(data={'id':[1,2,3,4,5,6],'A':[20,21,20,22,35,25]})
'''
   id   A
0   1  20
1   2  21
2   3  20
3   4  22
4   5  35
5   6  25
'''
df['percent'] = (df['A'] / df['A'].shift(1) - 1).fillna(0) * 100 #calculate percentage

print(df)
'''
   id   A    percent
0   1  20   0.000000
1   2  21   5.000000
2   3  20  -4.761905
3   4  22  10.000000
4   5  35  59.090909
5   6  25 -28.571429
'''
df.loc[df['percent']>= 20,"flag"]="Y" #create a new column

#for negative values
#df.loc[df['percent'].abs() >= 20,"flag"]="Y"

相关问题