我有一个包含数字数据的Pandas Series,我想找到它的唯一值以及它们的频率出现。我使用标准程序
# Given the my_data is a column of a pd.Dataframe df
unique = df[my_data].value_counts()
print unique
这里是我得到的结果
# -------------------OUTPUT
-0.010000 46483
-0.010000 16895
-0.027497 12215
-0.294492 11915
0.027497 11397
我不理解的是为什么值为“相同值”(-0.01)会出现两次。这是内部阈值(小值),还是我做错了什么?
更新: 如果我将数据框存储在csv中并重新读取,则会获得正确的结果,即:
#-------------------输出 -0.010000 63378 -0.027497 12215 -0.294492 11915 0.027497 11397
解决方法: 基于讨论,我找到了问题的来源和解决办法。正如提到的那样,这是浮点精度问题,可以通过四舍五入来解决值的问题。但是,如果没有……我就看不出来。
pd.set_option('display.float_format', repr)
非常感谢您的帮助!!
df
的样子是什么?它的精度是否比这里显示的更高? - harvpanpd.set_option('display.float_format', repr)
然后打印出这个最小数据集,编辑结果到这个问题中。我们不需要所有的代码。 - Mark Dickinson