我有一个包含数百列的数据帧,如果一列在行后包含任何丢失的值,我想删除它 n 。这是怎么做到的?谢谢
n
如果你的索引是基于0的并且连续的,你可以只检查任何 na 行后的值 n 在每列中,如果是,则删除它们:
na
out = df.drop( columns = [c for c in df.columns if df.loc[n:, c].isna().any()] )
如果索引不是基于0的,或者不是连续的,则可以使用 iloc 相反,但需要获取列编号而不是名称进行测试:
iloc
out = df.drop( columns = [c for i, c in enumerate(df.columns) if df.iloc[n:, i].isna().any()] )
注意,我假设您缺少的值是 NaN ,例如 '' (空字符串),可以执行以下操作:
NaN
''
out = df.drop( columns = [c for c in df.columns if (df.loc[n:, c].astype(str) == '').any()] )