Python 比较Dataframe中行的值

Python 比较Dataframe中行的值,python,pandas,dataframe,Python,Pandas,Dataframe,我想知道数据帧的两个不同行中的值是否相同。 我的df看起来像这样: df['Name1']: Alex, Peter, Herbert, Seppi, Huaba df['Name2']: Alexander, peter, herbert, Sepp, huaba 首先我想应用.rstrip()和.toLower(),但这些方法似乎只适用于字符串。我尝试了Str(df['Name1'],效果很好,但是比较给了我错误的结果 我还尝试了以下方法: df["Name1"].isin(df

我想知道数据帧的两个不同行中的值是否相同。 我的df看起来像这样:

df['Name1']:
Alex,
Peter,
Herbert,
Seppi,
Huaba

df['Name2']:
Alexander,
peter,
herbert,
Sepp,
huaba
首先我想应用.rstrip()和.toLower(),但这些方法似乎只适用于字符串。我尝试了
Str(df['Name1']
,效果很好,但是比较给了我错误的结果

我还尝试了以下方法:

    df["Name1"].isin(df["Name2"]).value_counts())
    df["Name1"].eq(df["Name2"]).value_counts())
问题1:我认为
.isin
如果找到子字符串,也会返回
true
,例如
alex。isin(alexander)
会返回true。这不是我要找的

问题2:我想
.eg
可以帮我解决。但是
.rstrip()
to.lower()
方法仍然存在问题


计算相同条目数量的最佳方法是什么?

使用set查找两个数据帧列之间的公共值

common_values = list(set(df.Name1) & set(df.Name2) )
count = len(common_values)

使用set查找两个数据帧列之间的公共值

common_values = list(set(df.Name1) & set(df.Name2) )
count = len(common_values)
如果需要比较每一行:

out1 = df["Name1"].str.lower().eq(df["Name2"].str.lower()).sum()
如果需要将
Name1的所有值与
Name2的所有值进行比较:

out2 = df["Name1"].str.lower().isin(df["Name2"].str.lower()).sum()
如果需要比较每一行:

out1 = df["Name1"].str.lower().eq(df["Name2"].str.lower()).sum()
如果需要将
Name1的所有值与
Name2的所有值进行比较:

out2 = df["Name1"].str.lower().isin(df["Name2"].str.lower()).sum()

df['Name1']==df['Name2']
将返回一系列的
True/False
结果,以确定各个条目是否相同。这是您想要的吗?您期望的结果是什么?
df['Name1']==df['Name2']
将返回一系列的
True/False
结果,以确定各个条目是否相同。这是您想要的吗?您期望的结果是什么?它对我有效,尽管我自己也可以做到。但是简单而优雅。谢谢我的朋友。它对我有效,尽管我自己也可以做到。但是简单而优雅。Tha你是我的朋友。