在pandas中逐行舍入小数而不是列式小数

时间:2018-05-17 02:41:50

标签: python pandas dataframe rounding

根据pandas.DataFrame.round文档,我可以逐列决定舍入。但是,没有任何关于行方向舍入的文章。 例如,我有

               A
count       1010.00009
measure     54.45678
average     0.50483  

我怎么能做到

               A
count       1010
measure     54.46
average     0.5048

3 个答案:

答案 0 :(得分:3)

当某些内容支持列但不支持索引时,您唯一的选择是转置...两次。

df.T.round(decimals=dict(zip(df.index, [0, 2, 4]))).T

或者,

df.T.round(decimals=pd.Series([0, 2, 4], index=df.index)).T

最后添加.astype(object)来电,我们有 -

              A
count      1010
measure   54.46
average  0.5048

答案 1 :(得分:3)

使用zipround(来自python),对于打印,我要添加astype(object)

df.A=[round(x,y) for x , y in zip(df.A,[0,2,4])]
df.astype(object)

              A
count      1010
measure   54.46
average  0.5048

答案 2 :(得分:0)

我们转置DataFrame并四舍五入,然后再次转置。

df = df.T.round( { "row_name": 0, "row2" : 2, "row3" : 4 } ).T
相关问题