当前位置: 首页 > 面试题库 >

Pandas Dataframe查找所有列均相等的行

阎智
2023-03-14
问题内容

我有一个包含字符的数据框-我想要按行的布尔结果,告诉我该行的所有列是否具有相同的值。

例如,我有

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

我已经尝试过.all,但似乎只能检查是否都等于一个字母。我能想到的唯一另一种方法是在每一行上做一个唯一的,看看是否等于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[:, 0], axis=0).all(1)
Out[14]: 
0     True
1    False
2     True
dtype: bool


 类似资料:
  • 希望这对你来说是有意义的,我很乐意更详细地解释这个问题。

  • 问题内容: 我有多列值相等。我想查找具有3列以上具有相等值的行ID。 表结构就像- 问题答案: 数据并检查是否相等,请尝试此技巧。

  • 我想实现dijkstra的算法,在两个节点之间的图中找到最便宜的路径。权重是节点之间的距离,单位为X,Y。我知道如何实现dijkstra,但我需要找到最短的所有路径。所以如果两条路径是相同的长度,我希望他们两个。 我也在谷歌和堆栈溢出上到处找。但是我真的不能理解给出的一些答案。也没有人使用优先级队列。我在考虑标记我们已经访问过的节点,但这不会切断路径吗? 这是我要实现的来自维基百科的伪代码。 如果

  • 问题内容: 我必须在Python中找到列表的平均值。到目前为止,这是我的代码 我已经知道了,所以它可以将列表中的值相加,但是我不知道如何将其划分为它们? 问题答案: 在Python 3.4+上,你可以使用 statistics.mean() 在旧版本的Python上,你可以执行 在Python 2上,你需要转换len为浮点数才能进行浮点数除法 无需使用。它慢得多,并已在Python 3 中删除。

  • 问题内容: 我在数据库中有几个表。我想查找哪些列(在哪些表中)没有任何值(列中都为NULL)。在下面的示例中,结果应该是 我不知道如何创建这种查询。非常感谢您的帮助! 问题答案: 对于单列,返回不为null的行数: 您可以为所有列生成查询。根据Martin的建议,您可以使用排除不能为空的列。例如: 如果表的数量很大,则可以类似的方式为所有表生成查询。所有表的列表在中。

  • 问题内容: 我有这个桌子; 我希望选择这样的行: 任一或= 。 另一个字段应该是唯一的。 即我想从表中选择唯一,或者我需要以下结果: 怎么做? 为什么?因为我希望构建一个类似于Facebook的收件箱,在该收件箱中,已发送和已接收的消息将被聚合,而此查询是迄今为止的瓶颈。 我正在使用Rails 3.2和Postgres 9.3。 问题答案: (not )从结果中删除重复项,从而不必要。您可能希望在