简体   繁体   中英

Convert number string with commas and negative values to float [Pandas]

I would like to convert negative value strings and strings with commas to float df. But I am struggling to do both operations at the same time

customer_id  Revenue
332          1,293.00
293          -485
4284         1,373.80
284          -327

Output_df

332          1293.00
293          485
4284         1373.80
284          327

Convert to numeric and then take the absolute value:

df["Revenue"] = pd.to_numeric(df["Revenue"]).abs()

If the above doesn't work, then try:

df["Revenue"] = pd.to_numeric(df["Revenue"].str.strip().str.replace(",", "")).abs()

Here I first make a call to str.strip() to remove any whitespace in your float. Then, I remove commas using str.replace() .

Does using .str.replace() help?

df["Revenue"] = pd.to_numeric(df["Revenue"].str.replace(',','').abs()

If you are getting the DataFrame from a csv file, you can use the following at import to address the commas, and then deal with the - later:

df.read_csv ('foo.​csv', thousands=',')
df["Revenue"] = pd.to_numeric(df["Revenue"]).abs()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM