加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Pandas Dataframe查找所有列等于的行

发布时间:2020-12-16 23:32:29 所属栏目:Python 来源:网络整理
导读:我有一个包含字符的数据帧 – 我想要一个布尔结果的行,告诉我该行的所有列是否具有相同的值. 例如,我有 df = [ a b c d0 'C' 'C' 'C' 'C' 1 'C' 'C' 'A' 'A'2 'A' 'A' 'A' 'A' ] 我想要的结果是 0 True1 False2 True 我已经尝试了,但似乎我只能检查所有都等
我有一个包含字符的数据帧 – 我想要一个布尔结果的行,告诉我该行的所有列是否具有相同的值.

例如,我有

df = [  a   b   c   d

0  'C'   'C'   'C'   'C' 

1  'C'   'C'   'A'   'A'

2  'A'   'A'   'A'   'A' ]

我想要的结果是

0  True

1  False

2  True

我已经尝试了,但似乎我只能检查所有都等于一个字母.我唯一可以想到的方法是通过在每一行做一个独特的,看看是否等于1?提前致谢.

解决方法

我认为最干净的方法是使用eq来检查第一列的所有列:
In [11]: df
Out[11]: 
   a  b  c  d
0  C  C  C  C
1  C  C  A  A
2  A  A  A  A

In [12]: df.iloc[:,0]
Out[12]: 
0    C
1    C
2    A
Name: a,dtype: object

In [13]: df.eq(df.iloc[:,0],axis=0)
Out[13]: 
      a     b      c      d
0  True  True   True   True
1  True  True  False  False
2  True  True   True   True

现在你可以使用全部(如果它们都等于第一个项目,它们都是相等的):

In [14]: df.eq(df.iloc[:,axis=0).all(1)
Out[14]: 
0     True
1    False
2     True
dtype: bool

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读