String to float python pandas

Active3 hr before
Viewed126 times

8 Answers


You can try df.column_name = df.column_name.astype(float). As for the NaN values, you need to specify how they should be converted, but you can use the .fillna method to do it., How to use GROUP BY in a way concatenates data in one column, but filters for specific data in another ,NOTE: pd.convert_objects has now been deprecated. You should use pd.Series.astype(float) or pd.to_numeric as described in other answers., 12 convert_objects is deprecated in newer pandas. Use the data-type specific converters pd.to_numeric. – Thomas Matthew Jul 23 '16 at 23:18

This is available in 0.11. Forces conversion (or set's to nan) This will work even when astype will fail; its also series by series so it won't convert say a complete string column

In[10]: df = DataFrame(dict(A = Series(['1.0', '1']), B = Series(['1.0', 'foo'])))

In[11]: df
   A B
0 1.0 1.0
1 1 foo

In[12]: df.dtypes
   A object
B object
dtype: object

In[13]: df.convert_objects(convert_numeric = True)
   A B
0 1 1
1 1 NaN

In[14]: df.convert_objects(convert_numeric = True).dtypes
   A float64
B float64
dtype: object
load more v

Need to convert strings to floats in Pandas DataFrame?,Depending on the scenario, you may use either of the following two approaches in order to convert strings to floats in Pandas DataFrame:,Home » Python » How to Convert Strings to Floats in Pandas DataFrame,You can then add the following syntax to convert all the values into floats under the entire DataFrame:

(1) astype(float)

df['DataFrame Column'] = df['DataFrame Column'].astype(float)
load more v

The method is used to cast a pandas object to a specified dtype. ,Method 1: Using DataFrame.astype().,Example: In this example, we’ll convert each value of ‘Inflation Rate’ column to float.,Example 1: In this example, we’ll convert each value of ‘Inflation Rate’ column to float.


Converting string/int to int/float,Converting float to int,Converting a money column to float,Similarly, if we want to convert the data type to float, we can call astype('float'). By default, it is using 64-bit floating-point numbers. We can use 'float128' for more precision or 'float16' for better memory efficiency.

For demonstration, we create a dataset and will load it with a function:

import pandas as pdimport numpy as npdef load_df(): return pd.DataFrame({
   'string_col': ['1', '2', '3', '4'],
   'int_col': [1, 2, 3, 4],
   'float_col': [1.1, 1.2, 1.3, 4.7],
   'mix_col': ['a', 2, 3, 4],
   'missing_col': [1.0, 2, 3, np.nan],
   'money_col': ['£1,000.00', '£2,400.00', '£2,400.00', '£2,400.00'],
   'boolean_col': [True, False, True, True],
   'custom': ['Y', 'Y', 'N', 'N']
}) df = load_df()
load more v

You can use the following syntax, df = df.astype(float) to convert all string columns to float type.,Use df['Fee'] = df['Fee'].astype(float) to convert the values of "Fee" column from string to float type. astype(float) perform the conversion from string to float on DataFrame.,How to convert single or all columns to string type in Pandas,By using pandas.DataFrame.astype() and pandas.to_numeric() methods you can convert a column from string type to Float. In this article, I will explain how to convert one or multiple string columns to float type using examples.

If you are in a hurry, below are some of the quick examples of how to convert string to float in Pandas DataFrame. You can apply these to convert from any type in Pandas

# Below are quick example
# convert "Fee"
from string to float
df['Fee'] = df['Fee'].astype(float)

# Convert entire DataFrame string to floats
df = df.astype(float)

# Convert numeric
function string to float
df['Discount'] = pd.to_numeric(df['Discount'])

# Convert DataFrame column from string to float
df["Discount"] = pd.to_numeric(df["Discount"], downcast = "float")

# Convert each value of the column to a string
df['Discount'] = pd.to_numeric(df['Discount'], errors = 'coerce')

# Using df.replace() to replace nan values 0 before convertion
df['Discount'] = pd.to_numeric(df['Discount'], errors = 'coerce')
df = df.replace(np.nan, 0, regex = True)

# Replace empty string('') with np.nan before convertion
df['Discount'] = df.Discount.replace('', np.nan).astype(float)
load more v

Whether object dtypes should be converted to StringDtype().,Whether object dtypes should be converted to BooleanDtypes().,Whether object dtypes should be converted to the best possible types.,Changed in version 1.2: Starting with pandas 1.2, this method also converts float columns to the nullable floating extension type.

>>> df = pd.DataFrame(
      ..."a": pd.Series([1, 2, 3], dtype = np.dtype("int32")),
      ..."b": pd.Series(["x", "y", "z"], dtype = np.dtype("O")),
      ..."c": pd.Series([True, False, np.nan], dtype = np.dtype("O")),
      ..."d": pd.Series(["h", "i", np.nan], dtype = np.dtype("O")),
      ..."e": pd.Series([10, np.nan, 20], dtype = np.dtype("float")),
      ..."f": pd.Series([np.nan, 100.5, 200], dtype = np.dtype("float")),
load more v

The traceback includes a ValueError and shows that it could not convert the $1,000.00 string to a float. Ok. That should be easy to clean up.,Here is a simple view of the messy Excel data:,First we read in the data and use the dtype argument to read_excel to force the original column of data to be stored as a string:,I will definitely be using this in my day to day analysis when dealing with mixed data types.

import pandas as pd

df_orig = pd.read_excel('sales_cleanup.xlsx')
df = df_orig.copy()
load more v

This tutorial will cover how to convert these Pandas strings into numbers so you can evaluate them numerically.,Pandas Convert String Column to Numeric,Python with Pandas: Convert String to Float and other Numeric Types,Pandas Convert String to Float

import pandas as pd # Don't forget to import pandas!
grades.head() # Look at the first few rows (head) of the data
> StudentID Homework Midterm Project Final
> 0 4560 100 97.68 100 A
> 1 5540 85.68 90.02 88.54 B
> 2 6889 92.06 85.74 88.84 B
> 3 6817 65.02 85.5 87.86 C # Output information about the DataFrame itself
> <class 'pandas.core.frame.DataFrame'>
   > RangeIndex: 4 entries, 0 to 3
   > Data columns (total 5 columns):
   > StudentID 4 non-null object
   > Homework 4 non-null object
   > Midterm 4 non-null object
   > Project 4 non-null object
   > Final 4 non-null object
   > dtypes: object(5)
   > memory usage: 240.0+ bytes
load more v

Feel free to Contact Usto post your ads here with best price