结合pd.merge与round和astype

时间:2018-11-07 15:43:14

标签: python pandas merge

所以我有两个数据帧,并且正在使用pd.merge从df2向df1添加一列

它工作正常,只有一个小问题,即加5位小数。因此显示如下:

df1
room | value
A    | 10
B    | 19

df2
name  | room | value | value2
Joe   |   A  |   10  | 10.00000
Peter |   B  |   19  | 19.00000

我可以将round()。astype(int)与pd.merge结合吗?

当前:

final = pd.merge(left=df1, right=df2, on="room", how="left")

想法(会产生错误“无法将非有限值(NA或inf)转换为整数”)

final = pd.merge(left=df1, right=df2, on="room", how="left").round().astype(int)

在以前的案例中,我使用.round()。astype(int)提取了该行,然后使用merge将其添加到新的df中。因此,通过额外的步骤,它起作用了。只是想知道是否还有更直接的方法。

谢谢您的建议。

最诚挚的问候

米奇

1 个答案:

答案 0 :(得分:0)

好的,刚刚发现了这个问题:

Integer becomes decimal in merged dataframe using python pandas

所以这很有意义。因此,我必须先将所有“ nan”替换为0,然后再执行int命令。长话短说:额外的方法是:)(.fillna(0))