Home > database >  Pandas replace string to Float
Pandas replace string to Float

Time:02-25

I want to remove the "HKD $" and change to Float object

I use below command line but it doesnt work.

df['price_list_1'] = df['price_list_1'].str.replace("HKD $","")

The result:

/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:1: FutureWarning: The default value of regex will change from True to False in a future version.
  """Entry point for launching an IPython kernel.
0       $14
1       $20
2       $55
3       $20
4       $50
       ... 
647     $58
648     $20
649     $46
650     $70
651     $70
Name: price_list_1, Length: 652, dtype: object

CodePudding user response:

When you use .str.replace(), you should be care that if the string value includes any special characters of regular expressions such as $, ^, and *, in this case, $.

To explicity say '$' is not for regular expression, you can use regex=False.

df['price_list_1'] = df['price_list_1'].str.replace("HKD $","", regex=False)

For your information about using regular expression in str.replace: see https://datascientyst.com/replace-values-regex-pandas/

CodePudding user response:

You could also use str.lstrip:

out = df['price_list'].str.lstrip('$').astype(float)

Output:

0      14.0
1      20.0
2      55.0
3      20.0
4      50.0
647    58.0
648    20.0
649    46.0
650    70.0
651    70.0
Name: price_list, dtype: float64
  • Related