如何删除pandas中仅包含零的列?

如何删除pandas中仅包含零的列?,第1张

如何删除pandas中仅包含零的列?

df.loc[:, (df != 0).any(axis=0)]


以下是其工作方式的细分:

In [74]: import pandas as pdIn [75]: df = pd.Dataframe([[1,0,0,0], [0,0,1,0]])In [76]: dfOut[76]:    0  1  2  30  1  0  0  01  0  0  1  0[2 rows x 4 columns]

df != 0
创建一个布尔数据框,该框为True,其中
df
非零:

In [77]: df != 0Out[77]:        0      1      2      30   True  False  False  False1  False  False   True  False[2 rows x 4 columns]

(df !=0).any(axis=0)
返回一个布尔系列,指示哪些列具有非零条目。(该
any
*** 作将沿0轴(即沿行)的值聚合为一个布尔值。因此,结果是每列一个布尔值。)

In [78]: (df != 0).any(axis=0)Out[78]: 0     True1    False2     True3    Falsedtype: bool

而且

df.loc
可以用来选择那些列:

In [79]: df.loc[:, (df != 0).any(axis=0)]Out[79]:    0  20  1  01  0  1[2 rows x 2 columns]

要“删除”零列,请重新分配

df

df = df.loc[:, (df != 0).any(axis=0)]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存