python - 比较熊猫数据框行
问题描述
我有一个像这样的数据框:
df = pd.DataFrame({30: {'2020-10-09': 12.79, '2020-10-12': 12.83, '2020-10-13': 12.88, '2020-10-14': 12.93, '2020-10-15': 12.99, '2020-10-16': 13.07, '2020-10-19': 13.16, '2020-10-20': 13.24, '2020-10-21': 13.32, '2020-10-22': 13.42}, 365: {'2020-10-09': 12.27, '2020-10-12': 12.27, '2020-10-13': 12.28, '2020-10-14': 12.29, '2020-10-15': 12.29, '2020-10-16': 13.07, '2020-10-19': 12.31, '2020-10-20': 12.32, '2020-10-21': 12.32, '2020-10-22': 12.33}})
我想找到所有列的值相等的行。我可以这样做,.loc
但这意味着我必须对列名进行硬编码,我不想这样做,因为将来我可能会有更多列进行比较。我很接近
df.eq(df.iloc[:, 0], axis=0)
这使
30 365
2020-10-09 True False
2020-10-12 True False
2020-10-13 True False
2020-10-14 True False
2020-10-15 True False
2020-10-16 True True
2020-10-19 True False
2020-10-20 True False
2020-10-21 True False
2020-10-22 True False
但我无法检索True
每列中的行。我认为 usingdf[df.eq(df.iloc[:, 0], axis=0)]
应该可以,但它会产生多索引错误。谢谢!
解决方案
您可以添加DataFrame.all
for test if allTrue
并使用boolean indexing
:
df = df[df.eq(df.iloc[:, 0], axis=0).all(axis=1)]
print (df)
30 365
2020-10-16 13.07 13.07
推荐阅读
- c# - Automapper 前提条件,如果 src 值为 0 则 map null
- sql - 在 Neo4J 中使用 Cypher 连接两个子查询
- react-native - 我正在尝试运行世博项目
- java - JUnit 测试未捕获异常
- http - 仅一个网站出现 SSL 错误,同时另一个网站正在运行 | ERR_CERT_COMMON_NAME_INVALID
- excel - 列出文件夹中的某些文件(使用 Excel 2003)
- c++ - 声明一个具有 C 调用约定但内部链接的 C++ 函数
- c# - 在部分页面中使用 asp-for TagHelper
- php - Laravel nova restrict viewAny()
- excel - 如果 Excel 文件中存在该文件的名称,如何将文件从一个位置复制到另一个位置