首页 > 解决方案 > 如何从目标数据框中删除列,但合并中的连接需要列

问题描述

我有两个数据框 df1, df2

df1.columns

['id','a','b']

df2.columns

['id','ab','cd','ab_test','mn_test']

预期列是['id','a','b','ab_test','mn_test']

标签: pythonpandas

解决方案


您可以merge并使用filter第二个数据框来保留感兴趣的列:

df1.merge(df2.filter(regex=r'^id$|test'), on='id')

或者类似地通过按位运算:

df1.merge(df2.loc[:,(df2.columns=='id')|df2.columns.str.contains('test')], on='id')

df1 = pd.DataFrame(columns=['id','a','b'])
df2 = pd.DataFrame(columns=['id','ab','cd','ab_test','mn_test'])

df1.merge(df2.filter(regex=r'^id$|test'), on='id').columns
# Index(['a', 'b', 'id', 'ab_test', 'mn_test'], dtype='object')

推荐阅读