python - 如何根据顺序合并熊猫中的两个数据框
问题描述
我有两个要合并的 df,但它们没有公共列。
因此,我在每个名为的数据框上创建了一个临时列tmp
:
y_pred['tmp'] = 1
data['tmp'] = 1
data
好像:
mean year tmp
4600 2.3 2019 1
2601 5.3 2020 1
而y_pred
看起来像:
pred_score tmp
0 2 1
1 5.2 1
我合并它们:
new_df = pd.merge(data, y_pred, on=['tmp'], how='left')
new_df.drop('tmp', inplace=True, axis=1)
我得到 900 行,而我只需要 30 行(假设数据集每个有 30 行,我得到 30 乘以 30)
而我需要的是new_df
有 30 行并将列合并pred_score
到data
当前行的顺序。
这样我就会得到:
新的_df:
mean year pred_score
4600 2.3 2019 2
2601 5.3 2020 5.2
有没有办法在没有公共列的情况下实现这一目标?
解决方案
使用y_pred.values
:
>>> data
mean year
4600 2.3 2019
2601 5.3 2020
>>> y_pred
pred_score
0 2.0
1 5.2
>>> data['pred_score'] = y_pred.values
# Output
mean year pred_score
4600 2.3 2019 2.0
2601 5.3 2020 5.2
推荐阅读
- javascript - Javascript 出现未知错误,开发人员菜单中没有任何内容 (F12)
- ios - 'UIImage?在 swift 4 中不能转换为“UIImage”问题
- outlook - 是否可以在邮件正文中发送带有输入字段的电子邮件并获得回复?
- c - 许多带有套接字的消息队列
- serialization - 如何序列化类包含其他类对象
- java - 在 Java 中实现一个命名管道监听器,它将读取一个 Windows 命名管道
- postgresql - 如何在 postgreSQL 中运行 shell 脚本
- knex.js - 插入时Knex / Objection`重复键值违反唯一约束`
- c# - 更改模式注册表格式后,Kafka Consumer 消息未收到
- r - 如何根据R中的列表索引替换矩阵中的值?