我有一个非常恼人的测量集,而且经常它只是一个小点,有一个非常高的值,然后是一个非常低的值,与正常模式相比。你知道吗
我正试图摆脱这些,并想知道是否有一种方法可以有效地删除前一点,如果这大于(出于任意的原因20)删除这两个点:
这是我到目前为止,但我有一个巨大的数据集,所以要避免为循环
for i in range(1,len(df1)):
if abs(df1[TYPE].loc[i]-df1[TYPE].loc[i-1])>20:
#update new columns
df1[TYPE].loc[i-1] = -9999;
df1[TYPE].loc[i] =-9999;
其中TYPE是我的列变量的名称 这种方法还说:
TypeError: cannot do index indexing on <class `'pandas.tseries.index.DatetimeIndex'> with these indexers [1] of <class 'int'>`
我也在想这些留置权上的一些东西是一种选择——但我不知道如何调整它,这样它就不会一次性完成整个数据帧,而是比较每个位置
df1.insert(0,"newcol1","-9999")
df1['newcol1'] = df1[TYPE].shift() == df1[TYPE]
df1.ix[0, 'newcol1'] = True
if df1[['newcol1']] > 50:
print("Jhrjhfh!")
df1[TYPE]=-9999
df1[TYPE].shift=-9999
可以将此方法应用于要筛选的每个列。这将过滤掉1帧中出现的光点。你知道吗
相关问题 更多 >
编程相关推荐