python - 在 pandas 的列中获取具有相同值的行

标签 python pandas dataframe

在 pandas 中,给定一个 DataFrame D:

+-----+--------+--------+--------+   
|     |    1   |    2   |    3   |
+-----+--------+--------+--------+
|  0  | apple  | banana | banana |
|  1  | orange | orange | orange |
|  2  | banana | apple  | orange |
|  3  | NaN    | NaN    | NaN    |
|  4  | apple  | apple  | apple  |
+-----+--------+--------+--------+

当有三列或更多列时,我如何返回所有列中内容相同的行以使其返回:

+-----+--------+--------+--------+   
|     |    1   |    2   |    3   |
+-----+--------+--------+--------+
|  1  | orange | orange | orange |
|  4  | apple  | apple  | apple  |
+-----+--------+--------+--------+

请注意,当所有值为 NaN 时,它会跳过行。

如果这只有两列,我通常会 D[D[1]==D[2]] 但我不知道如何将其概括为超过 2 列的 DataFrame。

最佳答案

类似于 Andy Hayden 的回答,检查 min 是否等于 max(然后行元素都是重复的):

df[df.apply(lambda x: min(x) == max(x), 1)]

关于python - 在 pandas 的列中获取具有相同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21231478/

相关文章:

python - 为什么我在图片上添加评论后图片的尺寸会变小?

python - line_profiler 不返回任何输出

python - reshape MultiIndex 以分离

python - 除了使用 "columns.tolist()"方法之外,如何重新排序我的 Pandas 数据框?我希望特定的列始终出现在最后

将 NA 值替换为组中的数值

python - 如何对 Pandas 中的多列进行分组计数

python - 如何在flask-restful中自定义响应内容类型?

python - 使用 getter 和 setter 时的 if 语句?

python - 将 Pandas 列名连接到列值

python - Pandas - 为分组数据中的每个组分配唯一 ID