删除值为 0 或 999999 的列
Remove columns with values 0 or 999999
我正在处理一个包含 400 列的大型数据集,其中一些列的值全为零,而其他列的值全为零,只有少数 '999999999'。我想摆脱这样的专栏。我能够对仅包含零的列执行此操作,但不确定能否对包含零和 '999999999'
的列执行此操作
以下是删除零的代码-
df = df.loc[:, (df != 0).any(axis=0)]
我知道这很简单。但是,如果有人可以帮助我完成下一部分,那就太棒了。谢谢
这应该有效:
df = df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]
示例:
>>> df
a b c
0 0 0 1
1 0 0 0
2 999999999 0 5
>>> df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]
c
0 1
1 0
2 5
您可以使用 .isin()
以多个值为条件:
df = df.loc[:, (~df.isin([0, 99999999])).any(axis=0)]
我正在处理一个包含 400 列的大型数据集,其中一些列的值全为零,而其他列的值全为零,只有少数 '999999999'。我想摆脱这样的专栏。我能够对仅包含零的列执行此操作,但不确定能否对包含零和 '999999999'
的列执行此操作以下是删除零的代码-
df = df.loc[:, (df != 0).any(axis=0)]
我知道这很简单。但是,如果有人可以帮助我完成下一部分,那就太棒了。谢谢
这应该有效:
df = df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]
示例:
>>> df
a b c
0 0 0 1
1 0 0 0
2 999999999 0 5
>>> df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]
c
0 1
1 0
2 5
您可以使用 .isin()
以多个值为条件:
df = df.loc[:, (~df.isin([0, 99999999])).any(axis=0)]