Python 比较Dataframe中行的值
我想知道数据帧的两个不同行中的值是否相同。 我的df看起来像这样: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['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你是我的朋友。