首页 > 解决方案 > 在带有标头的大型 DataFrame 中过滤掉 NaN

问题描述

我有大量的时间序列,其中一些在某些日期有空白。我用 XL 表中的 xlwings 读到了这一点:

Y0 = xw.Range('SomeRangeinXLsheet').options(pd.DataFrame, index=True , header=3).value

我正在尝试创建一个过滤器来对这些系列进行回归,所以我必须去掉无效日期。如果我 :

print(Y0.iloc[:,[i]]==Y0.iloc[:,[i]])

我的列号 i 得到了正确的真/假序列,很好。
然后我被卡住了,找不到过滤整个df的方法,该列的真/假,甚至只是将干净的系列提取为pd.Series。
我需要它们一一调整我的自变量日期以分别适应我的每个变量的日期。

谢谢您的帮助。

标签: pythonpandas

解决方案


我不确定我是否理解你的问题,但如果你想检查特定列中的 NULL 并删除这些行,你可以试试这个 -

import pandas as pd
df = df[pd.notnull(df['column_name'])]

df.dropna()如上一个答案中所建议的,对于删除 NaN,应该可以工作。如果它不起作用,您可以尝试用占位符文本替换 NaN,并尝试删除包含该占位符文本的行。

df['column_name'] = df['column_name'].replace(np.nan, 'delete-it', regex = True)
df = df[df["column_name"] != 'delete-it']

希望这可以帮助!


推荐阅读