以 1 最小频率 Python 删除时间序列中具有 Nan 值的任何一天
drop any day with Nan value in time series with 1 Min frequency Python
我有一个频率为 1 分钟的时间序列数据帧。我需要删除具有一个或多个 nan 值的任何一天。
例如在下面的df中,2012-10-15和2012-10-25天需要去掉。
import pandas as pd
index=pd.date_range(start='2012-10-15', end='2012-10-25', freq='1Min')
df=pd.DataFrame(range(len(index)), index=index, columns=['Number'])
df.iloc[1]=np.nan
df.iloc[-2]=np.nan
print(df)
您可以使用 isna
在 df.index.normalize()
提取的日期检查 nan
和 groupby.transform()
:
mask = df['Number'].isna().groupby(df.index.normalize()).transform('any')
df[~mask]
我有一个频率为 1 分钟的时间序列数据帧。我需要删除具有一个或多个 nan 值的任何一天。 例如在下面的df中,2012-10-15和2012-10-25天需要去掉。
import pandas as pd
index=pd.date_range(start='2012-10-15', end='2012-10-25', freq='1Min')
df=pd.DataFrame(range(len(index)), index=index, columns=['Number'])
df.iloc[1]=np.nan
df.iloc[-2]=np.nan
print(df)
您可以使用 isna
在 df.index.normalize()
提取的日期检查 nan
和 groupby.transform()
:
mask = df['Number'].isna().groupby(df.index.normalize()).transform('any')
df[~mask]