Pandas将列转换为浮动

时间:2020-02-23 14:42:05  来源:igfitidea点击:

在本教程中,我们将看到如何将列转换为在Pandas 浮动。

转换字符串列以浮动Pandas

有两种方法可以将字符串列转换为Pandas浮动。

使用Astype(float)方法

我们可以使用Astype(float)转换字符串以在Pandas 浮动。
这是语法:

df['Column'] = df['Column'].astype(float)

这是一个例子。
我们将转换数据类型的列 Rating从对象到 float64此示例的示例员工数据。

名称评分
Andy8.6
Prateek7
import pandas as pd
emp_df = pd.DataFrame({'Name': ['Andy','Prateek'], 
                        'Rating': ['8.6','7']})
print("-------Original Dataframe-------\n",emp_df)
print("-------Original Dataframe's data types-------\n",emp_df.dtypes)
emp_df['Rating'] = emp_df['Rating'].astype(float)
print("-------Updated Dataframe with float data type for Rating column-------\n",emp_df)
print("-------Updated Dataframe's data types-------\n",emp_df.dtypes)

输出:

-------Original Dataframe------
       Name Rating
0     Andy    8.6
1  Prateek      7
-------Original Dataframe's data types------
 Name      object
Rating    object
dtype: object
-------Updated Dataframe with float data type for Rating column------
       Name  Rating
0     Andy     8.6
1  Prateek     7.0
-------Updated Dataframe's data types------
 Name       object
Rating    float64
dtype: object

使用TONUMERIC()方法

我们可以使用 toNumeric()我们在列中可能具有非数值的方法。
这是语法:

df['Column'] = pd.to_numeric(df['Column'],errors='coerce')

如果列为非数字值,则它们将被转换为 NaN
以下是此示例的示例员工数据。

名称评分
Andy8.6
RiyankaNA
Prateek7
NehaNA

让我们说评级不适用于新员工riyanka和Sneha。
在此方案中,我们将从字符串转换额定列数据类型以使用TONUMERIC()方法浮动。

import pandas as pd
emp_df = pd.DataFrame({'Name': ['Andy','Riyanka','Prateek','Sneha'], 
                        'Rating': ['8.6','NA','7','NA']})
print("-------Original Dataframe-------\n",emp_df)
print("-------Original Dataframe's data types-------\n",emp_df.dtypes)
emp_df['Rating'] = pd.to_numeric(emp_df['Rating'],errors='coerce')
print("-------Updated Dataframe with float data type for Rating column-------\n",emp_df)
print("-------Updated Dataframe's data types-------\n",emp_df.dtypes)

输出:

-------Original Dataframe------
       Name Rating
0     Andy    8.6
1  Riyanka     NA
2  Prateek      7
3    Sneha     NA
-------Original Dataframe's data types------
 Name      object
Rating    object
dtype: object
-------Updated Dataframe with float data type for Rating column------
       Name  Rating
0     Andy     8.6
1  Riyanka     NaN
2  Prateek     7.0
3    Sneha     NaN
-------Updated Dataframe's data types------
 Name       object
Rating    float64
dtype: object

如我们所见,我们已将额定值列转换为 float64

将整数列转换为在Pandas 浮动

有两种方法可以将整数列转换为Pandas浮动。

使用Astype(float)方法

我们可以使用Astype(float)转换字符串以在Pandas 浮动。
这是语法:

df['Column'] = df['Column'].astype(float)

这是一个例子。
我们将转换数据类型的列 Salary从整数到 float64

import pandas as pd
emp_df = pd.DataFrame({'Name': ['Rohan','Abhishek'], 
                        'Salary': [80000,40000]})
print("-------Original Dataframe-------\n",emp_df)
print("-------Original Dataframe's data types-------\n",emp_df.dtypes)
 
# Converting int to float data type
emp_df['Salary'] = emp_df['Salary'].astype(float)
print("-------Updated Dataframe with float data type for Salary column-------\n",emp_df)
print("-------Updated Dataframe's data types-------\n",emp_df.dtypes)

输出:

-------Original Dataframe------
        Name  Salary
0     Rohan   80000
1  Abhishek   40000
-------Original Dataframe's data types------
 Name      object
Salary     int64
dtype: object
-------Updated Dataframe with float data type for Salary column------
        Name   Salary
0     Rohan  80000.0
1  Abhishek  40000.0
-------Updated Dataframe's data types------
 Name       object
Salary    float64
dtype: object

使用TONUMERIC()方法

我们可以使用 toNumeric()我们在列中可能具有非数值的方法。
这是语法:

df['Column'] = pd.to_numeric(df['Column'], downcast='float')

这是一个例子:

import pandas as pd
emp_df = pd.DataFrame({'Name': ['Neha','Amrita'], 
                        'Salary': [70000,60000]})
print("-------Original Dataframe-------\n",emp_df)
print("-------Original Dataframe's data types-------\n",emp_df.dtypes)
emp_df['Salary'] = pd.to_numeric(emp_df['Salary'], downcast='float')
print("-------Updated Dataframe with float data type for Rating column-------\n",emp_df)
print("-------Updated Dataframe's data types-------\n",emp_df.dtypes)

输出:

-------Original Dataframe------
      Name  Salary
0    Neha   70000
1  Amrita   60000
-------Original Dataframe's data types------
 Name      object
Salary     int64
dtype: object
-------Updated Dataframe with float data type for Rating column------
      Name   Salary
0    Neha  70000.0
1  Amrita  60000.0
-------Updated Dataframe's data types------
 Name       object
Salary    float32
dtype: object