仅在熊猫中舍入一些列

时间:2018-07-27 04:15:49

标签: python pandas

我有一个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]:

进行迭代

1 个答案:

答案 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