我有一个pandas数据框,我只想四舍五入它的某些列(不是全部,不是其中之一)。它们都将四舍五入为相同的小数位数。
我目前使用的过程如下:
# example dataframe
df1 = pd.DataFrame({'a':[0.1111,0.2222],'b':[0.3333,0.4444],'c':[0.5555,0.6666]})
df1
> a b c
> 0 0.1111 0.3333 0.5555
> 1 0.2222 0.4444 0.6666
# I want to round columns 'a' and 'c' to two decimals
# Do it one by one
df1['a'] = df1['a'].round(2)
df1['c'] = df1['c'].round(2)
df1
> a b c
> 0 0.11 0.3333 0.56
> 1 0.22 0.4444 0.67
有人知道是否有一种方法可以对列列表进行舍入,例如如果我需要在多列中重复执行此操作,是否有一种更简单的方法来代替单行执行,或者不是使用for [list_of_col_names]:
答案 0 :(得分:2)
您可以使用类似dict的方式为每列进行自定义
In [658]: df1.round({'a': 2, 'c': 2})
Out[658]:
a b c
0 0.11 0.3333 0.56
1 0.22 0.4444 0.67
或者,您可以
In [649]: cols = ['a', 'c']
In [650]: df1[cols] = df1[cols].round(2)
In [651]: df1
Out[651]:
a b c
0 0.11 0.3333 0.56
1 0.22 0.4444 0.67