km1*_*234 59 python merge dataframe pandas
我有两个数据帧,每个数据帧有两个索引列.我想合并它们.例如,第一个数据帧如下:
V1
A 1/1/2012 12
2/1/2012 14
B 1/1/2012 15
2/1/2012 8
C 1/1/2012 17
2/1/2012 9
Run Code Online (Sandbox Code Playgroud)
第二个数据帧如下:
V2
A 1/1/2012 15
3/1/2012 21
B 1/1/2012 24
2/1/2012 9
D 1/1/2012 7
2/1/2012 16
Run Code Online (Sandbox Code Playgroud)
结果我想得到以下内容:
V1 V2
A 1/1/2012 12 15
2/1/2012 14 N/A
3/1/2012 N/A 21
B 1/1/2012 15 24
2/1/2012 8 9
C 1/1/2012 7 N/A
2/1/2012 16 N/A
D 1/1/2012 N/A 7
2/1/2012 N/A 16
Run Code Online (Sandbox Code Playgroud)
我尝试使用pd.merge和.join方法的几个版本,但似乎没有任何工作.你有什么建议吗?
Ale*_*der 74
您应该可以使用join,它默认连接索引.根据您想要的结果,您必须使用outer连接类型.
>>> df1.join(df2, how='outer')
V1 V2
A 1/1/2012 12 15
2/1/2012 14 NaN
3/1/2012 NaN 21
B 1/1/2012 15 24
2/1/2012 8 9
C 1/1/2012 17 NaN
2/1/2012 9 NaN
D 1/1/2012 NaN 7
2/1/2012 NaN 16
Run Code Online (Sandbox Code Playgroud)
签名:_. join(其他,on = None,how ='left',lsuffix ='',rsuffix ='',sort = False)Docstring:在索引或键列上与其他DataFrame连接列.通过传递列表,有效地通过索引连接多个DataFrame对象.
roo*_*oot 42
你可以这样做merge:
df_merged = df1.merge(df2, how='outer', left_index=True, right_index=True)
Run Code Online (Sandbox Code Playgroud)
关键字参数how='outer'保留两个帧的所有索引,填充缺少的索引NaN.在left_index和right_index关键字参数有合并是对指数进行.如果在完成NaN合并后获得所有列,则另一个故障排除步骤是验证索引是否相同dtypes.
merge上面的代码为我生成以下输出:
V1 V2
A 2012-01-01 12.0 15.0
2012-02-01 14.0 NaN
2012-03-01 NaN 21.0
B 2012-01-01 15.0 24.0
2012-02-01 8.0 9.0
C 2012-01-01 17.0 NaN
2012-02-01 9.0 NaN
D 2012-01-01 NaN 7.0
2012-02-01 NaN 16.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79034 次 |
| 最近记录: |