【发布时间】:2016-09-26 05:44:14
【问题描述】:
我正在使用 pandas 并导入了两个 csv。
df1 是
df2 是
df2的数据类型是
当我对 df1 和 df2 进行一些操作时:
df3= pd.merge(df1, df2, how='left', on=['Origin City Code', 'DC'])
然后将其导出为 csv
df3.to_csv("test.CSV")
那么“体积”列下所有值的总和与原始 df2 列下的值总和不匹配。事实上,df3 中的总和越来越多。我相信这个问题是由于浮点数而出现的。但是有什么办法可以解决吗??我已经浏览了以下链接,但我的问题仍未得到解答。
https://github.com/pydata/pandas/issues/2069
reading and writing csv in pandas changes cell values
Wrong decimal calculations with pandas
这是我正在使用的代码文件:https://www.dropbox.com/s/kjpnhl7qtojes92/sample.rar?dl=0
【问题讨论】:
-
df1中有重复的['Origin City Code', 'DC']行吗?这将导致合并的 DataFrame 中出现重复卷,从而解释更大的总和。 -
@root .. df1 中没有重复值。我检查了
-
我并不是说作为一个整体重复,只是在
['Origin City Code', 'DC']子集上,即df.duplicated(subset=['Origin City Code', 'DC']).any()。总金额减了多少?你能提供一个可重现的例子吗?我无法使用您显示的数据重现错误。 -
你能显示有问题的总和的值吗?
df3的总和比df2的总和多 多少? -
df2.shape和df3.shape是什么?这两个数据框的行数是否相同?
标签: python-2.7 csv pandas numpy floating-point