合并后类型从int到float64的转换导致错误

4
我正在尝试在Pandas中合并两个数据框。其中一个数据框有一个数值列,其类型为“int64”。
但是,在合并后,由于某种原因,类型被转换为“float64”。请注意,这不是我的连接列。
当我尝试访问数据框时,它会出现错误:
In [56]: account_aggregates.head()
Out[56]: ) failed: TypeError: %d format: a number is required, not numpy.float64>

2
你能否发布来自df.info()的输出,包括两个数据框和合并后的数据框?可能发生的情况是你有缺失值,这会因为存在NaN而改变数据类型为浮点型。此外,关于那个错误,请检查你的pd.set_options,特别是'display.float_format' - EdChum
@EdChum,问题出在display.float_format上。一旦我重置它,输出就正常了。为什么缺失值会改变数据类型为float? - Derek Krantz
1个回答

2
更改dtype为float64的原因是,使用整数无法表示缺失值NaN
关于错误消息,我有一个预感它是'display.float_format',因为我今天早些时候回答了一个问题并看到了这个错误。我认为这是因为您必须传递str.format作为值,而不是格式字符串:pd.set_option('display.float_format', '{:.2g}'.format),例如,而不是pd.set_option('display.float_format', '%.2g')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接