如何逐元素比较两个DataFrame并判断首个DataFrame元素是否更小
Pandas逐元素比较两个DataFrame实现方法
前提:两个DataFrame的行索引、列名完全对齐,若存在行列不匹配的情况,可先通过reindex_like方法对齐结构。
核心实现代码
直接使用Pandas自带的逐元素比较运算符即可,示例如下:
import pandas as pd # 假设df1为第一个待比较的DataFrame,df2为第二个对照的DataFrame # 可选:对齐两个DataFrame的结构,避免行列不匹配导致的空值 df2_aligned = df2.reindex_like(df1) # 逐元素比较,返回布尔型DataFrame,值为True代表df1对应位置元素小于df2 compare_result = df1 < df2_aligned
结果验证
你可以通过以下代码查看所有返回True的位置,确认是否仅索引0、1对应的Column 130_x列符合预期:
# 查看指定列的比较结果 print(compare_result['Column 130_x']) # 查看所有返回True的位置 print(compare_result[compare_result == True].stack())
如果需要提取df1中满足条件的元素,其余位置置为空值,可以使用:
filtered_df1 = df1.where(compare_result)
内容的提问来源于stack exchange,提问作者dddxxx
相关产品推荐
相关产品推荐

