1

我有一个频率为 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)
4

1 回答 1

1

您可以使用isna以下方式检查nangroupby.transform()提取日期df.index.normalize()

mask = df['Number'].isna().groupby(df.index.normalize()).transform('any')

df[~mask]
于 2020-09-16T17:50:12.100 回答