Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (50.2k points)

Is there a way to round a single column in pandas without affecting the rest of the dataframe?

 df:

      item  value1  value2

    0    a 1.12     1.3

    1    a 1.50     2.5

    2    a 0.10     0.0

    3    b 3.30    -1.0

    4    b 4.80    -1.0

df.value1.apply(np.round) gives

0    1

1    2

2    0

3    3

4    5

5    5

What is the correct way to make data look like this: 

  item  value1  value2

0    a   1 1.3

1    a   2 2.5

2    a   0 0.0

3    b   3 -1.0

4    b   5 -1.0

5    c   5 5.0

1 Answer

0 votes
by (108k points)

You implemented the round to the series of values given by df.value1. The return type is thus a Series. You must assign that series back to the dataframe (or another dataframe with the same Index).

Also, there are pandas.Series.round method which is basically a shorthand for pandas.Series.apply(np.round).

In[2]: 

    df.value1 = df.value1.round()

    print df

Out[2]:

    item  value1  value2

    0    a   1 1.3

    1    a   2 2.5

    2    a   0 0.0

    3    b   3 -1.0

    4    b   5 -1.0

Browse Categories

...