python - 在两个键中合并df,只为一个键工作
问题描述
所以我有两个 df,它们需要合并到两个键Channel and Week
中。尝试合并时,它会为 Column Contacts_F. 中的所有行返回 NaN 值。
数据:
df = pd.DataFrame({ 'week' : ['01', '02', '45'] ,
'Channel' : ['AA', 'BB', 'CC'],
'level' : ['1degre','2degre','3degre'] })
df.dtypes
out[131]:
week object
Channel object
level object
reff_table = pd.DataFrame({ 'week' : ['01', '02', '45'] ,
'Channel' : ['AA', 'BB', 'CC'],
'Contacts_F' : ['0.11','0.546','0.06458'] })
reff_table.dtypes
out[132]:
week object
Channel object
Contacts_F float64
print(df.week[:3]), print(reff_table.week[:3])
0 00
1 00
2 00
Name: week, dtype: object
0 103
1 102
2 101
Name: week, dtype: object
(None, None)
我的尝试:
它为column= Contacts_F中的所有行返回NaN值/。
df = pd.merge(df, reff_table [["Channel", "week" , "Contacts_F"]],on=['Channel','week'], how='left')
如果我只合并 ON Column= Channel ,它会起作用,但我需要匹配两列。
df = pd.merge(df, reff_table [["Channel", "week" , "Contacts_F"]],on=['Channel', how='left')
解决方案
有关如何执行合并的工作示例,请参见下文。更正了提示中的各种语法错误。
import pandas as pd
df = pd.DataFrame({'week': [1, 2, 45],
'Channel': ['AA', 'BB', 'CC'],
'level': ['1degre', '2degre', '3degre']})
reff_table = pd.DataFrame({'week': [1, 2, 45],
'Channel': ['AA', 'BB', 'CC'],
'Contacts_F': ['0.11', '0.546', '0.06458']})
pd.merge(df, reff_table, on=['Channel', 'week'], how='left')
------
Out[8]:
week Channel level Contacts_F
0 1 AA 1degre 0.11
1 2 BB 2degre 0.546
2 45 CC 3degre 0.06458
推荐阅读
- php - 带参数的 RewriteRule 重命名 url 不起作用
- html - 响应式下拉菜单?
- reactjs - 动作正在触发一系列远程方法并返回被拒绝
- elasticsearch - 无法创建嵌套日期聚合查询
- c++ - 如何将 QPainter 和 OpenGL 与着色器与 Qt5.9 并行使用
- java - 如何在没有 AppEngine for Google Cloud Storage 的情况下获取服务 url?
- javascript - 从 2 个下拉值中命名(Angular)
- java - 如何在 Java eclipse 中集成 Maven 1.0
- java - 如何编写 CSV 并将其作为字符串存储在 JRI 中?
- linux - Msfvenom 使用本地主机名