itt*_*ill 3 python merge dataframe python-3.x pandas
我有两个数据帧 df1 和 df2,如下所示:-
df1 = pd.DataFrame({'x': [1, '3', 5,'t','m','u'],'y':[2, 4, 6, 4, 4, 8]})
df2 = pd.DataFrame({'x': [1, 3, '4','t'],'z':[2, 4, 6,7]})
Run Code Online (Sandbox Code Playgroud)
我正在尝试将两个数据框合并(左连接)为:-
df=pd.merge(df1, df2, how='left', on='x')
Run Code Online (Sandbox Code Playgroud)
输出是:-
df
Out[25]:
x y z
0 1 2 2.0
1 3 4 NaN
2 5 6 NaN
3 t 4 7.0
4 m 4 NaN
5 u 8 NaN
Run Code Online (Sandbox Code Playgroud)
显然,对于上面的第二行,即 x=3,我想要 z=4 而不是 NaN。在合并期间是否可以选择定义键的数据类型或任何其他解决方法,我可以将键的 dtype 更改为两个数据帧中的字符串并获得所需的输出。
Sco*_*ton 10
您可以使用assign临时将新的 dtype 分配给 x 列:
pd.merge(df1.assign(x=df1.x.astype(str)),
df2.assign(x=df2.x.astype(str)),
how='left', on='x')
Run Code Online (Sandbox Code Playgroud)
输出:
x y z
0 1 2 2.0
1 3 4 4.0
2 5 6 NaN
3 t 4 7.0
4 m 4 NaN
5 u 8 NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7789 次 |
| 最近记录: |