我创建了许多数据帧,所有值都应该是小数点后3位。这就是它的作用,也是它上周的作用。今天早上,当我运行Jupyter笔记本时,它突然把所有数据帧中的所有内容四舍五入为整数。
我不知道为什么。熊猫有什么变化吗,有我可以改变的设置吗?当我打印所有列的dtypes时,它说它们是float,我试着在数据框上使用round,但它没有做任何事情。我的意思是:
上周的样子:
Jan 2021 Feb 2021 Jul 2021 Aug 2021
A 0.7 0.938 0.80 0.75
B 0.3 0.062 0.08 0.20
C 0.0 0.0 0.12 0.05
D 0.0 0.0 0.0 0.0
我从上周在回归到一个检查站Jupyter笔记本和能够看到去年运行时,可以看到这些数字,但即使我跑后恢复回到旧的检查点,这种新变化,这就是现在的样子(今天早上当我跑它不期望这个问题,当我重新的以前版本没有这个问题几天前):
Jan 2021 Feb 2021 Jul 2021 Aug 2021
A 1 1 1 1
B 0 0 0 0
C 0 0 0 0
D 0 0 0 0
所以我想知道熊猫是否有什么变化?还有其他人发生过这种事吗?同样重要的是要注意,当我打印每个列表时,这些列由这些值组成,仍然显示第一个数据帧中的正确数字,带有3位小数点
编辑:
用于创建数据框架列的代码:
deca=round((len(decemberprediction[decemberprediction['COST_TYPE_A']==1])/len(decemberprediction)),3)
decb=round((len(decemberprediction[decemberprediction['COST_TYPE_B']==1])/len(decemberprediction)),3)
decc=round((len(decemberprediction[decemberprediction['COST_TYPE_C']==1])/len(decemberprediction)),3)
decd=round((len(decemberprediction[decemberprediction['COST_TYPE_D']==1])/len(decemberprediction)),3)
deccontractmix = [decb十,能源与气候变化部称,decd]打印(deccontractmix)
返回[0.643,0.25,0.036,0.0]
然后创建数据框架,我有所有其他的月份列也有结果列表和自己的值,然后执行:
predcontractmix=pd.DataFrame([[jancontractmix[0],febcontractmix[0],julcontractmix[0],augcontractmix[0],sepcontractmix[0],octcontractmix[0],novcontractmix[0],deccontractmix[0]],
[jancontractmix[1],febcontractmix[1],julcontractmix[1],augcontractmix[1],sepcontractmix[1],octcontractmix[1],novcontractmix[1],deccontractmix[1]],
[jancontractmix[2],febcontractmix[2],julcontractmix[2],augcontractmix[2],sepcontractmix[2],octcontractmix[2],novcontractmix[2],deccontractmix[2]],
[jancontractmix[3],febcontractmix[3],julcontractmix[3],augcontractmix[3],sepcontractmix[3],octcontractmix[3],novcontractmix[3],deccontractmix[3]]], columns=['Jan 2021', 'Feb 2021','Jul 2021','Aug 2021','Sept 2021', 'Oct 2021', 'Nov 2021','Dec 2021'])
predcontractmix.index=contractlabels
predcontractmix=pd.merge(predcontractmix,contractmix, left_on=predcontractmix.index, right_on=contractmix.index, how='outer')
predcontractmix=predcontractmix.rename(columns={'key_0':'Contract Type'})
predcontractmix=predcontractmix.set_index('Contract Type')
print('nContract Mix percent,median')
predcontractmix.head(6)
合并是一个类似的数据框架,具有相同的行,但只有2个ytd列
我能够解决这个问题,为将来遇到同样问题的任何人回答:
我尝试了所有这些,但它们都不适合我:
- 添加pd.options.display。float_format到我的笔记本的顶部
- 添加%精度%。3f到我的笔记本的顶部
- 在笔记本顶部添加pd.set_option("precision", 5)
最后对我起作用的是在我的笔记本顶部添加以下内容:
- pd.options.display。float_format = '{:,.3f}'.format