在 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/