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)