python - 合并两个不同维度的数据框
问题描述
我想根据“代码”和“种族编号”合并数据框 1 和数据框 2。但是,如您所见,这些数据框的维度不同。我想合并这些数据框,以便保留数据框 1 中与数据框 2 不匹配的行。我在下面提供了一个我想要的输出示例。
应该注意的是,并非每场比赛都有赛道状况,有时赛道状况会因比赛而异。
数据框代码:
cols1 = ['Code', 'Date', 'Venue', 'Race Number', 'Distance', 'Race Time']
df1 = pd.DataFrame(data=data1, columns=cols1)
df.to_excel("test1.xlsx")
cols2 = ['Code', 'Race Number', 'Track Condition']
df2 = pd.DataFrame(data=data2, columns=cols2)
数据帧 1 的输出:
Code Date Venue Race Number Distance Race Time
0 5162548 2020-11-28T13:15:00 WMAI 1 1708 1:52.83
1 5162548 2020-11-28T13:50:00 WMAI 2 1508 1:37.34
2 5162548 2020-11-28T14:25:00 WMAI 3 1608 1:43.89
3 5162548 2020-11-28T14:55:00 WMAI 4 1008 1:02.54
4 5162548 2020-11-28T15:25:00 WMAI 5 1008 1:02.18
5 5162548 2020-11-28T15:55:00 WMAI 6 1008 1:01.94
数据帧 2 的输出:
Code Race Number Track Condition
0 5162548 1 Good 4
合并数据框的所需输出:
Code Date Venue Race Number Distance Race Time Track Condition
0 5162548 2020-11-28T13:15:00 WMAI 1 1708 1:52.83 Good 4
2 5162548 2020-11-28T14:25:00 WMAI 3 1608 1:43.89 Empty
3 5162548 2020-11-28T14:55:00 WMAI 4 1008 1:02.54 Empty
4 5162548 2020-11-28T15:25:00 WMAI 5 1008 1:02.18 Empty
5 5162548 2020-11-28T15:55:00 WMAI 6 1008 1:01.94 Empty
解决方案
外部合并可以给出结果
df = pd.merge(df1, df2, on=['Code', 'Race Number'], how='outer')
df['Track Condition']= df['Track Condition'].fillna('Empty')
推荐阅读
- amazon-web-services - 如何根据其他变量有效统计对 API 和 Lambda 函数的请求?
- python - Numpy 1-dim 数组与 2-dim 数组,其中一个维度的长度为 1
- linux - sudo ./pg_ctl -D /Library/PostgreSQL/9.5/data start,错误:库未加载:@loader_path/../lib/libpq.5.dylib
- python - 如何在 Python 中调用列表中的字符串以传递给函数
- java - 使用 Google Vision 进行文本识别后处理
- java - 无法初始化类 org.apache.jmeter.protocol.http.proxy.ProxyControl
- python-3.x - 使用 bs4 在 excel 中刮掉保加利亚语文本的问题
- css - 在css中添加svg作为背景
- amazon-web-services - 步进函数中的同步 + 异步步进
- elasticsearch - 如何通过 __id 查询具体的 Elasticsearch 记录?