python - 将 DataFrame 中的多个值与另一个不同形状的值进行比较

标签 python pandas numpy data-wrangling

再次比较来自 DataFrame 的值
鉴于以下数据

data_df = pd.DataFrame({"Reference": ("A", "A", "A", "B", "C", "C", "D", "E"), "Other col": ("U", "U", "U--","V", "W", "W--", "X", "Y")}, index=[1, 2, 3, 4, 5, 6, 7, 8])

truth_df = pd.DataFrame({"Reference": ("A", "B", "C", "D", "E"), "Other col": ("U", "V", "W", "X", "Y")}, index=[1, 4, 5, 7, 8])
data_df



引用
值(value)


1
一种


2
一种


3
一种
用户体验

4



5
C


6
C
万维网

7
D
X

8




真相_df



引用
值(value)


1
一种


4



5
C


7
D
X

8




我需要检查并标记 data_df 中的值匹配 truth_df并希望最终得到一个新的数据集,如:
result_df



引用
值(value)
问题


1
一种


2
一种


3
一种
用户体验
错误的

4



5
C


6
C
万维网
错误的

7
D
X

最佳答案

您可以使用参数 indicator= 合并数据帧设置为 True .如果指标为 left_only表示 Issue 中的“错误”值:

df_out = data_df.merge(
    truth_df, on=["Reference", "Other col"], how="left", indicator=True
).rename(columns={"_merge": "Issues"})

df_out["Issues"] = np.where(df_out["Issues"] == "left_only", "Wrong", "")

print(df_out)
打印:
  Reference Other col Issues
0         A         U       
1         A         U       
2         A       U--  Wrong
3         B         V       
4         C         W       
5         C       W--  Wrong
6         D         X       
7         E         Y       

关于python - 将 DataFrame 中的多个值与另一个不同形状的值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67425382/

相关文章:

python - opencv 中的 filter2D 真的能发挥作用吗?

python - 如何规范 pandas 数据框中的以下日期?

python - 了解python中的内存使用情况

python - 如何使用 pandas 将 Series 重新排列为 DataFrame

python - 如何纠正 numpy sum 中的数值错误

python - 从一个排序向量中查找也存在于另一个排序向量中的值

python - 给定模块 m 和代码对象 c, "exec c in m.__dict__"做什么?

python - 将函数应用于 Pandas dfs 列表

python - 从 pandas DataFrame 导出 LaTeX 表

python - 使用 NumPy 和 Pillow 绘制 Mandelbrot 时,程序输出明显的噪声