如何在指定行后删除缺失值的pandas数据框列
我有一个数据表,里面有几百列。我想要在第 n
行之后,如果某一列有缺失值,就把这一列删掉。请问我该怎么做?谢谢!
1 个回答
3
如果你的索引是从0开始的,并且是连续的,你可以检查每一列在第 n
行之后是否有 na
值,如果有的话就把它们删掉:
out = df.drop(
columns = [c for c in df.columns if df.loc[n:, c].isna().any()]
)
如果索引不是从0开始,或者不是连续的,你可以用 iloc
来代替,但你需要用列的编号而不是名字来进行测试:
out = df.drop(
columns = [c for i, c in enumerate(df.columns) if df.iloc[n:, i].isna().any()]
)
我假设你缺失的值是 NaN
,如果它们是比如说 ''
(空字符串),你可以这样做:
out = df.drop(
columns = [c for c in df.columns if (df.loc[n:, c].astype(str) == '').any()]
)