我有一个这样的数据框:
Allotment Date NDVI_Kurtosis NDVI_Skewness
1 D 19840621 1.02 3.06
2 D 19850619 1.76 2.56
3 A 19840621 3.66 3.50
4 A 19850619 1.56 3.20
如果Allotment
和Date
在不同行之间彼此相差1.00之内,我想要返回每个NDVI_Kurtosis
和关联的NDVI_Skewness
。所以在这种情况下,我希望返回:
Allotment Date NDVI_Kurtosis NDVI_Skewness
D 19840621 1.02 3.06
D 19850619 1.76 2.56
A 19850619 1.56 3.20
我为此使用了iloc
,但到目前为止还没有成功。
答案 0 :(得分:0)
您可以使用shift函数创建新列,然后将它们与初始列进行比较。
import pandas as pd
df=pd.read_clipboard()
df['NDVI_Kurtosis_lag']=df['NDVI_Kurtosis'].shift(1).fillna(df['NDVI_Kurtosis'])
df['NDVI_Skewness_lag']=df['NDVI_Skewness'].shift(1).fillna(df['NDVI_Skewness'])
df
df2=df[(df['NDVI_Kurtosis']-df['NDVI_Kurtosis_lag']<1) & (df['NDVI_Skewness']-df['NDVI_Skewness_lag']<1)]
df2
Cordialy, 劳伦。