pandas PYTHON -使用条件和for循环比较不同 Dataframe 中的列

p4tfgftt  于 2023-02-20  发布在  Python
关注(0)|答案(2)|浏览(125)

我有2个 Dataframe 与数值。我想比较每列(他们有相同的column_name),如果他们都是相等的,执行一个条件(增加10分的分数)。我已经做了它"手动",它的作品,但我不喜欢它的方式。让我告诉你:
评分= 0
Dataframe 1
| 色谱柱A|B栏|C栏|D栏|
| - ------|- ------|- ------|- ------|
| 1个|第二章|无|1个|
Dataframe 2
| 色谱柱A|B栏|C栏|D栏|
| - ------|- ------|- ------|- ------|
| 1个|第二章|无|1个|
因此,如果每列的值相等,则score将为score = score +10

score=0
if (df1['Column A'][0]==df2['Column A'][0])&(df1['Column B'][0]==df2['Column B'][0])&(df1['Column C'][0]==df2['Column C'][0])&(df1['Column D'][0]==df2['Column D'][0]):
    score=score+10

我想这样做,但是要优化它,比如用for循环或者类似的东西。怎么做呢?非常感谢

wfveoks0

wfveoks01#

使用Pandasequals函数。
下面是一个简单的实现:

if df1.equals(df2):
    score += 10 
else:
    print("Columns are not equal")
nkcskrwz

nkcskrwz2#

逐个元素地比较值,然后检查每行是否只有True,并求和以找出有多少行满足条件,最后乘以10:

>>> df1.eq(df2).all(axis=1).sum() * 10
10

相关问题