python - 结合 pd.merge 与 round 和 astype
问题描述
所以我有两个数据框,并使用 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) 提取了该行,然后使用合并将该行添加到新的 df 中。所以有了这个额外的步骤,它就起作用了。只是想知道是否还存在更直接的方法。
感谢您的任何建议。
此致
米奇
解决方案
好的,刚发现这个问题:
使用 python pandas 合并数据帧中的整数变为十进制
所以这是有道理的。因此,我必须首先将所有“nan”替换为 0,然后执行 int 命令。长话短说:额外的方式就是方式:) (.fillna(0))
推荐阅读
- php - 如何使用循环反序列化多个数据字符串?
- javascript - C# JSON 字符串以不明确的格式返回
- ruby-on-rails - 在单独的部分中显示表头和表数据?
- docker - 如何查看 Docker 缓存的内容
- java - 寻找一种可以使用最少的语句对 1-100 进行排序的排序算法
- java - Android Grid View 在 android 版本 kitkat 上崩溃
- html - 我无法在导航栏中实现悬停下拉菜单
- php - 如何在不迭代的情况下将两个数组合并为一个
- java - 如何使 Uri 图像更小?
- javascript - google页面上一个元素的css计算源是什么