在Pandas数据框中,如果有等于-inf或NaN的条目,如何删除所有相关列。
-inf
NaN
nuypyhwy1#
如果保留其他类似空值(例如None、NaT)并不重要,则用nan替换-inf,并删除包含任何空值的列(dropna的how arg的默认值为"any")
None
NaT
dropna
how
import numpy as np import pandas as pd df = pd.DataFrame({ 'a': [1,2,np.nan], 'b': [1,-np.inf,3], 'c': [1,2,3] }) df = df.replace({-np.inf: np.nan}).dropna(axis=1) df
输出:
c 0 1 1 2 2 3
否则我会这么做:
import numpy as np import pandas as pd TARGET_VALUES = [-np.inf, np.nan] df = pd.DataFrame({ 'a': [1,2,np.nan], 'b': [1,-np.inf,3], 'c': ['a','b',None] }) column_value_counts = df.isin(TARGET_VALUES).sum(axis=0) df = df[column_value_counts[column_value_counts == 0].index.values].copy() df
c 0 a 1 b 2 None
1条答案
按热度按时间nuypyhwy1#
如果保留其他类似空值(例如
None
、NaT
)并不重要,则用nan替换-inf,并删除包含任何空值的列(dropna
的how
arg的默认值为"any")输出:
否则我会这么做:
输出: