python - 将两个具有相似列值的数据框合并在一起
问题描述
我有两个 dfs,一个比另一个长,但它们都有一个包含相同值的列。
这是我的第一个 df,称为天气:
DATE AWND PRCP SNOW WT01 WT02 TAVG
0 2017-01-01 5.59 0.00 0.0 NaN NaN 46
1 2017-01-02 9.17 0.21 0.0 1.0 NaN 40
2 2017-01-03 10.74 0.58 0.0 1.0 NaN 42
3 2017-01-04 8.05 0.00 0.0 1.0 NaN 47
4 2017-01-05 7.83 0.00 0.0 NaN NaN 34
这是我的第二个 df,称为自行车:
DATE LENGTH ID AMOUNT
0 2017-01-01 3 1 5
1 2017-01-01 6 2 10
2 2017-01-02 9 3 100
3 2017-01-02 12 4 250
4 2017-01-03 15 5 45
所以我希望我的 df 根据共享的 DATE 列从天气 df 中复制所有行并将其复制过来。
DATE LENGTH ID AMOUNT AWND SNOW TAVG
0 2017-01-01 3 1 5 5.59 0 46
1 2017-01-01 6 2 10 5.59 0 46
2 2017-01-02 9 3 100 9.17 0 40
3 2017-01-02 12 4 250 9.17 0 40
4 2017-01-03 15 5 45 10.74 0 42
请帮忙!也许可以使用某种类型的连接。
解决方案
利用merge
In [93]: bike.merge(weather[['DATE', 'AWND', 'SNOW', 'TAVG']], on='DATE')
Out[93]:
DATE LENGTH ID AMOUNT AWND SNOW TAVG
0 2017-01-01 3 1 5 5.59 0.0 46
1 2017-01-01 6 2 10 5.59 0.0 46
2 2017-01-02 9 3 100 9.17 0.0 40
3 2017-01-02 12 4 250 9.17 0.0 40
4 2017-01-03 15 5 45 10.74 0.0 42
推荐阅读
- python - 基于python中的时间戳列连接两个数据帧
- reactjs - 切换多个密码输入的密码可见性
- go - 如何使用 cobra 实现多个选项
- ios - 如何在 iOS Swift 的 avaudioplayer 中播放数据中的音频?
- sql-server - 如何在 IIS 上将事务隔离级别更改为 READ COMMITTED
- c++ - 如何正确地将在类的重载运算符中生成的分配数组传递给该类的另一个实例?
- r - 使用 SQL Server db 作为 R Shiny 应用程序的数据源
- agora.io - Agora:对观众微笑检测。Java、安卓工作室
- mysql - 如何连接到 minikube 集群外的 mysql 数据库
- java - Guice 默认绑定单例还是工厂?