【问题标题】:combine pd.merge with round and astype [duplicate]结合 pd.merge 与 round 和 astype [重复]
【发布时间】:2018-11-07 15:43:13
【问题描述】:

所以我有两个数据框,并使用 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 merge


    【解决方案1】:

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

    Integer becomes decimal in merged dataframe using python pandas

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

    【讨论】:

    • 如果您找到了可以回答您的问题/答案,您应该删除您的问题或建议它是重复的,然后等待有人将其标记为重复。您不应该做的是使用指向副本的链接来回答您自己的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多