比较Datafram中行的值

2024-09-26 18:10:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道一个数据帧的两个不同行中的值是否相同。 我的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()方法的问题。你知道吗

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


Tags: 数据方法truedfvaluepeteralexcounts
2条回答
print (df)
     Name1      Name2
0     Alex  Alexander
1    Peter      peter
2  Herbert    herbert
3    Seppi       Sepp
4    Huaba      huaba

如果需要比较每一行:

out1 = df["Name1"].str.lower().eq(df["Name2"].str.lower()).sum()

如果需要将Name1的所有值与Name2的所有值进行比较:

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

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

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

相关问题 更多 >

    热门问题