[英]Compare 'like' columns in Python dataframe
我有兩個數據框,它們應該具有相同的數據但來自不同的來源。 我想返回 df1 中的列名以及與 df2 中的等效項進行比較時該列的相應匹配率。
輸入:
df1 =
ID Age Value Name
1 10 1000 Red
2 20 2000 Blue
3 30 3000 Orange
4 40 4000 Grey
df2 =
Age_2 Value_2 Name_2
10 1000 red
20 1500 blue
30 3000 orange
40 4000 white
Desired output:
Name MatchRate
ID N/A
Age 1.00
Value 0.75
Name 0.75
我建議使用difflib.SequenceMatcher
來比較字符串,例如以下方式
import difflib
import pandas as pd
def get_ratio(x,y):
return difflib.SequenceMatcher(None,x,y).ratio()
df = pd.DataFrame({"col1":["Red","Blue","Orange","Grey","White"],"col2":["red","blue","orange","grey","black"]})
df["ratio"] = df.apply(lambda row:get_ratio(row.col1,row.col2),axis=1)
print(df)
給出輸出
col1 col2 ratio
0 Red red 0.666667
1 Blue blue 0.750000
2 Orange orange 0.833333
3 Grey grey 0.750000
4 White black 0.000000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.