Python 以1分钟的频率删除时间序列中具有Nan值的任意一天
我有一个1分钟频率的时间序列数据帧。我需要删除具有一个或多个nan值的任何一天。 例如,在以下df中,需要删除2012-10-15和2012-10-25天Python 以1分钟的频率删除时间序列中具有Nan值的任意一天,python,pandas,dataframe,time-series,drop,Python,Pandas,Dataframe,Time Series,Drop,我有一个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
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]