You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何输出使pandas.DataFrame.any返回True的单元格值及重复数据

解决方法

要输出导致pandas.DataFrame.any()返回True的具体单元格值,并对应到重复的DataFrame,你可以修改代码,直接提取重复数值而非仅判断存在性。以下是优化后的实现:

import pandas as pd

dataframe_arrays = []
Df1 = pd.DataFrame({'IDs': ['Marc', 'Jake', 'Sam', 'Brad']})
dataframe_arrays.append(Df1)
Df2 = pd.DataFrame({'IDs': ['TIm', 'Tom', 'harry', 'joe', 'bill']})
dataframe_arrays.append(Df2)
Df3 = pd.DataFrame({'IDs': ['kob', 'ham', 'konard', 'jupyter', 'Marc']})

# 遍历数组中的每个DataFrame,查找重复值
for df_idx, target_df in enumerate(dataframe_arrays):
    # 筛选Df3中与当前target_df重复的ID值
    duplicate_ids = Df3[Df3['IDs'].isin(target_df['IDs'])]['IDs'].unique().tolist()
    if duplicate_ids:
        print(f"找到重复值:{duplicate_ids}")
        print(f"对应DataFrame(索引{df_idx}):")
        print(target_df)
        print("---")

关键说明:

  • Df3['IDs'].isin(target_df['IDs'])生成布尔Series,标记Df3中哪些ID在目标DataFrame中存在
  • 通过布尔索引Df3[布尔Series]['IDs']提取所有重复ID,用unique()去重(避免Df3内重复值多次显示),tolist()转为列表提升可读性
  • 用enumerate获取每个DataFrame的索引,清晰区分是数组中的哪一个DataFrame
  • 移除原代码中的break,确保检查数组内所有DataFrame,不会漏掉后续可能的重复

内容的提问来源于stack exchange,提问作者desert_ranger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:05:23