gpt4 book ai didi

python - 如何删除具有混合类型列的 Pandas Dataframe 中所有数字列都包含零的行?

转载 作者:行者123 更新时间:2023-11-30 23:09:42 25 4
gpt4 key购买 nike

我有以下数据框:

import pandas as pd
df = pd.DataFrame({'a':[0,0,1,1], 'b':[0,1,0,1],'tag':['apple','orange','grapes','lemon']})
df = df[["tag","a","b"]]

看起来像这样:

In [37]: df
Out[37]:
tag a b
0 apple 0 0
1 orange 0 1
2 grapes 1 0
3 lemon 1 1

我想要做的是删除数字列为零的行,从而导致:

tag     a  b
orange 0 1
grapes 1 0
lemon 1 1

我怎样才能实现这一目标?

请注意,实际上,列数可以多于 2,并且列名称可以变化。所以我们需要一个通用的解决方案。

我尝试过,但没有效果:

df[(df.T != 0).any()]

最佳答案

这个答案中有一些不同的事情,如果有什么特别令人困惑的地方,请告诉我:

df.loc[~ (df.select_dtypes(include=['number']) == 0).all(axis='columns'), :]

所以:

  • 过滤以仅查找数字列
  • 跨列而非行应用 .all() 方法(默认为行)
  • ~ 求反
  • 将生成的 bool 系列传递给 df.loc[]

关于python - 如何删除具有混合类型列的 Pandas Dataframe 中所有数字列都包含零的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31018283/

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