繁体   English   中英

在熊猫中按行而不是按列舍入小数

[英]Round decimals row-wise instead of column-wise in pandas

根据pandas.DataFrame.round文档,我也可以按列决定舍入。 但是,没有关于按行舍入的内容。 例如,我有

               A
count       1010.00009
measure     54.45678
average     0.50483  

我怎么能做到

               A
count       1010
measure     54.46
average     0.5048

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

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

使用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

我们转置 DataFrame,然后将列舍入并再次转置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM