繁体   English   中英

如何使用python删除-9999作为列值的数据帧的行?

[英]how to remove the rows of a dataframe with -9999 as column value using python?

for column in df:
print(column)
print((df[column] == -9999).value_counts()) 
print("")

modelMag_u
False    49977
True        23
Name: modelMag_u, dtype: int64

modelMag_i
False    49985
True        15
Name: modelMag_i, dtype: int64

任何人都可以帮助我如何删除以 -9999 作为列值的行吗?

假设以下内容:如果该行中有任何值为 -9999 的列,您想要删除该行

df[~(df == -9999).any(axis='columns')]

这是如何运作的?

df == -9999首先运行。 这将每个单元格与 -9999 进行比较,根据每个单元格的内容创建 True 和 False 值的数据框。 然后我们在这个数据.any(axis='columns')使用.any(axis='columns') any (带有axis=columns 参数)对于具有any真值的每一行都返回真。 这正是您要删除的那些行。 df[~ ... ]构造保留df[~ ... ]中不为 True 的任何行。 剩下的是没有值为 -9999 的单元格的任何行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM