47

How could I convert the values of column 'count' to absolute value?

A summary of my dataframe this:

               datetime       count
0   2011-01-20 00:00:00   14.565996
1   2011-01-20 01:00:00   10.204177
2   2011-01-20 02:00:00   -1.261569
3   2011-01-20 03:00:00    1.938322
4   2011-01-20 04:00:00    1.938322
5   2011-01-20 05:00:00   -5.963259
6   2011-01-20 06:00:00   73.711525
cottontail
  • 10,268
  • 18
  • 50
  • 51
Yari
  • 867
  • 3
  • 9
  • 13

2 Answers2

96

Use pandas.DataFrame.abs().

import pandas as pd

df = pd.DataFrame(data={'count':[1, -1, 2, -2, 3, -3]})

df['count'] = df['count'].abs()

print(df)
   count
#0      1
#1      1
#2      2
#3      2
#4      3
#5      3
Ffisegydd
  • 51,807
  • 15
  • 147
  • 125
0

You can call abs() on multiple columns too.

df[['col1', 'col2']] = df[['col1', 'col2']].abs()

If you get SettingWithCopyWarning when you convert column values into absolute values, make a copy first to silence this warning.

df = df.copy()
df['count'] = df['count'].abs()

or use assign() to make a copy.

df = df.assign(count=df['count'].abs())
cottontail
  • 10,268
  • 18
  • 50
  • 51