python - 如何从目标数据框中删除列,但合并中的连接需要列
问题描述
我有两个数据框 df1, df2
df1.columns
['id','a','b']
df2.columns
['id','ab','cd','ab_test','mn_test']
预期列是['id','a','b','ab_test','mn_test']
如何从df1获取所有列,以及列
test
名中包含的列伪代码 > pd.merge(df1,df2,how='id')
解决方案
您可以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')
推荐阅读
- azure - 什么会导致节点 process.version 返回未定义?
- python - 对不相关数组的两个 KS 测试在 python 中产生相同的测试统计数据和 p 值
- java - Android:将可序列化的对象数据传递给另一个活动
- javascript - 如何确保 nodejs 的顺序执行以便从查询中返回结果?
- python - Django 在错误的端口上运行
- visual-studio - 为什么我应该关心一致的行尾?
- javascript - 克隆多个输入 Javascript
- dart - 如何获取资产中的文件路径以进行颤动
- python - 解析 OAI2/XML 格式
- oracle-apex - 强制具有自动完成功能的 Oracle APEX 文本字段具有结果