pandas 如何打印使panda panda.DataFrame.any返回True的单元格值?

nukf8bse  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(122)

下面的代码说明 Dataframe Df3单元格是否与数组dataframe_arrays中的另一个 Dataframe 单元格具有相同的值。但是,我想打印dataframe_arrays中与Df3具有相同值的单元格值和特定 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']})
repeat = False
for i in dataframe_arrays:
  repeat = Df3.IDs.isin(i.IDs).any()
  if repeat:
    print("i = ", i)
    break

我的目标是将当前 Dataframe 列与属于另一组 Dataframe 的列进行比较,并确定哪些值是重复的。

wtlkbnrh

wtlkbnrh1#

如果你的数据不是那么大,你可以简单地使用嵌套的loop.iterrows()来一行一行地遍历 Dataframe ,也可以使用globals()来获取包含重复数据的 Dataframe 的变量名。

def get_var_name(variable):
    globals_dict = globals()

    return [var_name for var_name in globals_dict if globals_dict[var_name] is variable]

for index, row in Df3.iterrows():
    for i in range(len(dataframe_arrays)):
        if row['IDs'] in dataframe_arrays[i]['IDs'].values:
            print("{} is in {}".format(row['IDs'], get_var_name(dataframe_arrays[i])[0]))

输出:

> Marc is in Df1

相关问题