比较数据框中的行值

时间:2019-08-05 09:04:30

标签: 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["Name2"]).value_counts())
    df["Name1"].eq(df["Name2"]).value_counts())

问题1:我认为.isin还会返回true,如果找到了一个子字符串,例如alex.isin(alexander)将返回true。这不是我想要的。

问题2:我认为.eg会为我做。但是我仍然遇到.rstrip()to.lower()方法的问题。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

function PercentageIncreases1() 
{
  var spreadsheet = SpreadsheetApp.getActive();
  var cell1 = spreadsheet.getRange("H5").getValues();
  var cell2= spreadsheet.getRange("H6").getValues();
  var cell3= spreadsheet.getRange("H7").getValues();
  var cell4= spreadsheet.getRange("H8").getValues();
  if (cell1[0][0] > 0) 
  {
    if(cell1[0][0] == 10)
    {
      spreadsheet.getRange("D5").setValue(cell1[0][0]);
      spreadsheet.getRange("D6").setValue(cell1[0][0]);
      spreadsheet.getRange("D7").setValue(cell1[0][0]);
      spreadsheet.getRange("D8").setValue(cell1[0][0]);
    }
    else
    {

    }
  }
};

如果需要比较每一行:

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