python - 从数据框中删除 nan、+inf、-inf 值列

标签 python pandas numpy

如何使用 NaN 删除列, +inf ,和-inf值(value)观?我在这里看到的所有解决方案都只提到行,但假设我有数据框中每个元素的一组特征,如何仅删除包含 +inf 的列, -infNaN来自数据框中的每一行?

最佳答案

第一replace() inf-inf 以及 nan:

df = pd.DataFrame({'a':[1,2,3], 'b':[4,np.nan,6], 'c':[7,8,np.inf]})
df = df.replace([np.inf, -np.inf], np.nan)

#    a    b    c
# 0  1  4.0  7.0
# 1  2  NaN  8.0
# 2  3  6.0  NaN

然后使用dropna()axis参数在基于行和基于列的行为之间切换:

df.dropna() # default axis=0 is row-based

#    a    b    c
# 0  1  4.0  7.0
df.dropna(axis=1) # axis=1 or axis='columns' is column-based

#    a
# 0  1
# 1  2
# 2  3

关于python - 从数据框中删除 nan、+inf、-inf 值列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67326135/

相关文章:

python - 如何在python中终止进程之前执行代码?

python - 如何根据数据框中的列值进行类别然后对总购买量求和?

python - 如何检查 Pandas 行是否包含空集

python - pandas 获取每组具有最小列值的行

python - 在 Python Pandas 中搜索数据框中的项目并将列转置为行

python - 切片并找到体积

python - python2中numpy的切片操作

python - Pandas 使用逻辑或公共(public)列之间的方式合并两个数据框

python - python有数量限制吗?

python - 绘制堆积条形图