gpt4 book ai didi

python - 删除所有值为零的所有列

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:28 24 4
gpt4 key购买 nike

我有一个与类似问题相关的简单问题here , 和 here .

我正在尝试删除 pandas 数据框中的所有列,这些列只有零(垂直方向,axis=1)。让我举个例子:

df = pd.DataFrame({'a':[0,0,0,0], 'b':[0,-1,0,1]})

a b
0 0 0
1 0 -1
2 0 0
3 0 1

我想删除 a 列,因为它只有零。

但是,如果可能的话,我想以一种漂亮的矢量化方式来完成它。我的数据集很大 - 所以我不想循环。因此我尝试了

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

b
1 -1
3 1

这允许我删除列和行。但是,如果我只是尝试删除列,loc 似乎会失败。有什么想法吗?

最佳答案

你真的很接近,使用any - 0 被转换为 False:

df = df.loc[:, df.any()]
print (df)

b
0 0
1 1
2 0
3 1

关于python - 删除所有值为零的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45732632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com