I have a pandas column with str
values. I need to change its type to int
. The problem is that all values are separated with (' '
) to differentiate the Ks and the Ms, ex:
a = '17 000 000'
int(a)
print(a)
output:
17000000
I have a pandas column with str
values. I need to change its type to int
. The problem is that all values are separated with (' '
) to differentiate the Ks and the Ms, ex:
a = '17 000 000'
int(a)
print(a)
output:
17000000
It is also possible to do this by changing locale
settings and applying locale.atof()
.
CAUTION: don't use this if other locale-related logics were present.
Code:
import locale
import pandas as pd
# data
df = pd.DataFrame({"A":["17 000 000", "15 000,22"]})
# change locale settings
locale._override_localeconv["thousands_sep"] = " "
locale._override_localeconv["decimal_point"] = ","
# apply
df["A"] = df["A"].apply(locale.atof)
Result:
print(df)
A
0 17000000.00
1 15000.22
Personally I think the df["A"].str.replace(" ", "").astype(int)
construct mentioned by @Erfan is recommended.