pandas - Python Pandas:添加两个数据框的缺失行并保留额外的列
问题描述
我想添加缺少的行数据框 df1 并保留额外的列信息
In [183]: df1
Out[183]:
City Country Region
0 Chicago US N.America
1 San Franciso US N.America
2 Boston US N.America
3 London UK Europe
4 Beijing China Asia
5 Omaha US N.America
In [183]: df2
Out[183]:
City
0 Chicago
1 San Franciso
2 Sao Paulo
3 Boston
4 London
5 Beijing
6 Tokyo
7 Omaha
合并后的期望结果是
City Country Region
0 Chicago US N.America
1 San Franciso US N.America
2 Sao Paulo nan nan
3 Boston US N.America
4 London UK Europe
5 Beijing China Asia
6 Tokyo nan nan
7 Omaha US N.America
我正在尝试pd.merge(df2, df1, on='City', how='outer')
但返回 keyerror。
解决方案
尝试下面的代码,使用pd.merge
, left_join
,您想要的输出:
merged = pd.merge(df2,df1,how='left',on='City')
print(merged)
City Country Region
0 Chicago US N.America
1 San Fransicsco NaN NaN
2 Sao Paolo NaN NaN
3 Boston US N.America
4 London UK Europe
5 Beijing China Asia
6 Tokyo NaN NaN
7 Omaha US N.America
如果要使用outer
联接,可以使用以下代码获得此结果:
merged_outer = pd.merge(df2, df1, on='City', how='outer')
print(merged_outer)
City Country Region
0 Chicago US N.America
1 San Fransicsco NaN NaN
2 Sao Paolo NaN NaN
3 Boston US N.America
4 London UK Europe
5 Beijing China Asia
6 Tokyo NaN NaN
7 Omaha US N.America
8 San Franciso US N.America
DF1 & DF2 分别为:
df1
City Country Region
0 Chicago US N.America
1 San Franciso US N.America
2 Boston US N.America
3 London UK Europe
4 Beijing China Asia
5 Omaha US N.America
df2
City
0 Chicago
1 San Fransicsco
2 Sao Paolo
3 Boston
4 London
5 Beijing
6 Tokyo
7 Omaha
推荐阅读
- sql-server - MS SQL 插入自增列默认值
- r - 数据框融化问题和气泡图
- reactjs - 实施用户操作与动态操作
- c++ - 无法初始化枚举类类型 | 视觉 C++
- wmi - 我正在寻找返回一个或另一个值的 WQL (WMI SQL) 查询
- android - Android - 蓝牙 API createRfcommSocket 与 createRfcommSocketToServiceRecord
- sql - SQL 错误 [42704]: 错误: 大对象 xxxxxxx 不存在
- android - 如何使用拦截器更改@Query 参数?
- kotlin - Kotlin - SQLiteDatabase - 不确定如何让列文本显示在 ViewHolder 中
- python - Python-docx用连续编号替换字符串