【问题标题】:Compare two data frames by each column in python?在python中按每一列比较两个数据框?
【发布时间】:2020-05-03 13:40:19
【问题描述】:

Df1:

Roll_No Sub1 Sub2 Sub3
1001      40  50   60
1002      65  87   30
1003      36  49   40
1004      29  83   50

我想比较子级别上每个 Roll_No 的 Roll_No 1001。 不知何故,我创建了 df2,它看起来像: df2

Roll_No Sub1 Sub2 Sub3
1001      40  50   60
1001      40  50   60
1001      40  50   60
1001      40  50   60

现在我想在多个条件下将每一列与 df1 & df2 进行比较。

Cond1 - df1.Sub1 -df2.Sub1 > 5
then 1 else 0
Cond2 - df1.Sub2 -df2.Sub2 > 10 
then 2 else 0
Cond3 - df1.Sub3 -df2.Sub3 > 7 
then 3 else 0

输出:

Roll_No Sub1 Sub2 Sub3
1001      0    0   0
1002      0    2   3
1003      0    0   3
1004      1    0   3

【问题讨论】:

  • 你的 Cond1..cond3 是什么?

标签: python python-3.x pandas python-2.7


【解决方案1】:
import pandas as pd
import numpy as np

Output = df1.copy()

Output['Sub1'] = np.where(df1['Sub1'] - df2['Sub1'] > 5, 1, 0)
Output['Sub2'] = np.where(df1['Sub2'] - df2['Sub2'] > 10, 2, 0)
Output['Sub3'] = np.where(df1['Sub3'] - df2['Sub3'] > 7, 3, 0)

来源https://datatofish.com/compare-values-dataframes/

【讨论】:

    猜你喜欢
    • 2021-05-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多