python - 熊猫:如何根据不同的单元格将熊猫中的值从数据帧复制到另一个数据帧
问题描述
我有df1
发货日期 | 价格 |
---|---|
2014 年 7 月 15 日 | 5 |
2015 年 8 月 19 日 | 9 |
2016 年 9 月 20 日 | 7 |
我也有df2
发货日期 |
---|
2015 年 8 月 19 日 |
2014 年 7 月 15 日 |
2016 年 9 月 20 日 |
2014 年 7 月 15 日 |
我需要 df2 的最终输出
发货日期 | 价格 |
---|---|
2015 年 8 月 19 日 | 9 |
2014 年 7 月 15 日 | 5 |
2016 年 9 月 20 日 | 7 |
2014 年 7 月 15 日 | 5 |
我还为 df2 添加了“价格”列。我需要帮助将“价格”列的每个单元格中的值设置为与 df1 中的日期对应的价格
解决方案
你可以通过几种方式做到这一点。
合并“Ship_Date”上的 2 个数据框
new_df = df2.merge(df1, on="Ship_Date", how="left")
print(new_df)
Ship_Date Price
0 08/19/2015 9
1 07/15/2014 5
2 07/15/2014 5
3 09/20/2016 7
使用该map
函数创建一个新列:
date_mappings = df1.set_index("Ship_Date")["Price"]
df2["Price"] = df2["Ship_Date"].map(date_mappings)
print(df2)
Ship_Date Price
0 08/19/2015 9
1 07/15/2014 5
2 09/20/2016 7
3 07/15/2014 5
暂时将 df1.index 设置为“Ship_Date”,然后重新索引 df1,使其与 df2 具有相同的形状:
new_df = df1.set_index("Ship_Date").reindex(df2["Ship_Date"]).reset_index()
print(new_df)
Ship_Date Price
0 08/19/2015 9
1 07/15/2014 5
2 09/20/2016 7
3 07/15/2014 5
推荐阅读
- php - PHP Pdo SELECT VIEW 查询失败
- graphics - 为什么directx9 AddDirtyRect 在英特尔集成显卡上会导致内存冲突?
- sql-server - 在两个不同的范围数之间
- wordpress - Docker 的 WordPress 文件在哪里?
- javascript - 导航栏和旋转木马配件
- vuejs2 - 如何在 vue 的 vue-good-table 上添加编辑按钮
- python - Python/Ctypes - 访问指针(到数组)时出现分段错误
- openlayers-3 - 获取 GML 选项错误
- css - 使用 sass 7-1 架构跨代码库使用的类的样式放在哪里
- java - Autowired 在 Bean 类 Spring 中不起作用