所以我有两个数据帧,并且正在使用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中。因此,通过额外的步骤,它起作用了。只是想知道是否还有更直接的方法。
谢谢您的建议。
最诚挚的问候
米奇
答案 0 :(得分:0)
好的,刚刚发现了这个问题:
Integer becomes decimal in merged dataframe using python pandas
所以这很有意义。因此,我必须先将所有“ nan”替换为0,然后再执行int命令。长话短说:额外的方法是:)(.fillna(0))