两个数据框之间的列差异

时间:2021-04-02 12:30:09

标签: python-3.x dataframe

有两个数据框

数据框 1

`name   hits1` 
 google  100

数据框 2

name hits2
google 80

我需要根据名称找到 hits1 和 hits 2 之间的区别,请提供任何建议。

输出应该是

name   hits1 hits2 diff_hits
google. 100   80     20 

1 个答案:

答案 0 :(得分:1)

import pandas as pd
# Sample Data
dt1 = {'name':['google', 'xyz', 'abc'],'hits1':[100, 50, 10]}
dt2 = {'name':['def', 'xyz', 'google'],'hits2':[25, 75, 45]}
df1 = pd.DataFrame(dt1)
df1.set_index('name', drop=True, inplace=True)
df2 = pd.DataFrame(dt2)
df2.set_index('name', drop=True, inplace=True)

# Create a New df with the difference column added
df3 = df1.join(df2, how='outer').fillna(0)
df3['Diff'] = df3.apply(lambda row: abs(row['hits1'] - row['hits2']), axis=1)

开头:

    hits1
name    
google  100
xyz 50
abc 10  

    hits2
name    
def 25
xyz 75
google  45  

结果是:

    hits1   hits2   Diff
name            
abc 10.0    0.0 10.0
def 0.0 25.0    25.0
google  100.0   45.0    55.0
xyz 50.0    75.0    25.0