python提取两列数据对比_python-比较2个数据框中的行并计算相似列的数量

我相信您需要:

#cross join between both DataFrames

df = df2.assign(A=1).merge(df1.assign(A=1),on=’A’,suffixes=(”,’_’)).drop(‘A’,axis=1)

#join ID columns and set index

df.index = df.pop(‘ID_’).astype(str) + ‘_’ + df.pop(‘ID’).astype(str)

df.index.name=’ID’

print (df)

Hair Legs Feathers Hair_ Legs_ Feathers_

ID

1_21 1 2 0 1 0 0

2_21 1 2 0 1 2 1

3_21 1 2 0 0 2 1

1_22 1 0 1 1 0 0

2_22 1 0 1 1 2 1

3_22 1 0 1 0 2 1

cols = df.filter(regex=’_$’).columns

#compare rows for match and count True values by sum

df[‘count’] = df[cols.str[:-1]].eq(df[cols].rename(columns=lambda x: x[:-1])).sum(axis=1)

df = df.drop(cols,axis=1).reset_index()

print (df)

ID Hair Legs Feathers count

0 1_21 1 2 0 2

1 2_21 1 2 0 2

2 3_21 1 2 0 1

3 1_22 1 0 1 2

4 2_22 1 0 1 2

5 3_22 1 0 1 1

    原文作者:weixin_39614874
    原文地址: https://blog.csdn.net/weixin_39614874/article/details/110397272
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞