Home > database >  How to convert object to int? (Python)
How to convert object to int? (Python)

Time:03-28

I have a task to convert "Egységár" and "Mennyiség" to integer. When I try this code I get this error message.

Database:

Dátum      :      object
Kategórianév  :   object
Terméknév    :    object
Egységár     :    object
Mennyiség    :   float64
Érték        :    object
Vevőnév       :   object
Vevő megye     :  object
Vevő város     :  object
Bolt megye    :   object
Bolt város   :    object
Boltnév     :     object

Code:

import pandas as pd
df2=df
pd.to_numeric(df2['Egységár']).astype(int)

Error message:

ValueError: Unable to parse string "400,00 Ft" at position 0

CodePudding user response:

If the comma is not a decimal separator:

pd.to_numeric(df2['Egységár'].str.replace(r'\D', '', regex=True), errors='coerce')

If this is a decimal separator:

(pd.to_numeric(df2['Egységár']
   .str.replace(',', '.', regex=False)
   .str.replace(r'[^\d\.]', '', regex=True), errors='coerce')
)

CodePudding user response:

Try removing commas in the column first:

import pandas as pd
df2=df.copy()
df2['Egységár'] = df2['Egységár'].replace(",", "", regex=True).replace("(\s )Ft", "", regex=True)
pd.to_numeric(df2['Egységár']).astype(int)

If the comma doesn't indicate the seperator between zeros and is the decimal point, try changing the replace from .replace(",", "", regex=True) to .replace(",\d ", "", regex=True)

  • Related