簡體   English   中英

比較 Python 數據框中的“類似”列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM