在pandas中,给定一个数据帧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]]
但是我不知道如何将其推广到超过两列的数据帧。
我的条目:
这是因为对行调用
pd.Series.nunique
会给出:注意:但是,这将保留看起来像
[nan, nan, apple]
或[nan, apple, apple]
的行。通常我希望这样,但对于您的用例来说,这可能是错误的答案。类似于Andy Hayden的回答,检查min是否等于max(那么行元素都是重复的):
我将检查每一行是否对其第一个元素equal:
如果行中的所有元素都为True,则行中的所有元素都相同:
仅限于行和可选的dropna:
相关问题 更多 >
编程相关推荐