Pandas 在DataFrame中如何将字符串转换为整数

Pandas 在DataFrame中如何将字符串转换为整数

Python是最受欢迎的数据分析和处理编程语言之一,原因是其直观的语法和丰富的库生态系统。Python提供了一个强大的平台,用于处理数据。其中一个库是Pandas,它是一个高度可扩展的数据处理和分析工具。Pandas允许我们以各种方式轻松地操作和转换数据,这使它成为任何数据分析人员或科学家工具箱中不可或缺的组成部分。

在本教程中,我们将重点讨论数据分析中经常遇到的一个特定问题:将字符串数据转换为整数数据在Pandas DataFrames中的方法。作为数据分析员,我们经常遇到存储为字符串的数据,尽管将其作为数值数据会更有用。在文章的下一部分中,我们将探讨一些在Pandas中将字符串数据转换为整数数据的方法,包括使用astype()和to_numeric()函数。我们还将讨论在处理数据转换时需要考虑的一些最佳实践和注意事项。

如何在Pandas DataFrame中将字符串转换为整数

在Pandas中,可以使用各种方法将字符串数据转换为整数数据。

方法1:使用astype()函数

Pandas中的astype()函数允许我们更改DataFrame中列的数据类型。当将字符串数据转换为整数数据时,这种方法简单而有用。我们可以将astype()函数应用于所需的列,并指定所需的数据类型,本例中为’int’。

要使用astype()函数进行数据转换,我们只需在DataFrame上调用此方法,并指定要将列转换为的数据类型。例如,以下代码演示了如何使用astype()函数将字符串列 “Age” 转换为整数列:

示例

# Importing required libraries
import pandas as pd

# Creating sample DataFrame
df = pd.DataFrame({'Name': ['Prince', 'Mukul', 'Divyang', 'Rohit'],
                   'Age': ['25', '30', '35', '40'],
                   'Salary': ['50000', '60000', '70000', '80000']})

# Converting Age column to integer using astype() function
df['Age'] = df['Age'].astype(int)

# Output
print(df.dtypes)
print(df)

在以上的代码中,我们创建了一个名为 “df” 的示例DataFrame。接下来,我们使用 “astype()” 函数将 “Age” 列转换为整数。 “astype()” 函数用于更改数据框中列的数据类型。我们将 “int” 指定为函数的参数,以将列转换为整数数据类型。更新后的DataFrame存储在 “df” 变量中。 最后,我们使用 “dtypes” 属性打印列的数据类型,并使用 “print()” 函数打印DataFrame,以查看对 “Age” 列所做的更改。 输出 以上代码的输出将类似于这样:

Name       object
Age         int32
Salary     object
dtype:     object

       Name  Age Salary
0    Prince   25  50000
1     Mukul   30  60000
2   Divyang   35  70000
3     Rohit   40  80000

如上所示,从上面的输出中可以看出,“Age”列已成功转换为整数数据类型,数据类型输出中使用“int32”值表示。数据框现在有三列 – 名字、年龄和薪水,年龄列包含整数值而不是字符串值。

需要注意的是,在使用astype()函数时,字符串值必须可转换为整数;否则,将引发ValueError。此外,如果列中有任何非数字字符或缺失值,则此方法将无法正常工作。

方法2:使用to_numeric()函数

Pandas中的to_numeric()函数是将字符串列转换为整数数据类型的另一种有用方法。此函数允许我们将各种数据类型转换为数字类型,包括字符串。它在处理转换错误方面提供更多的灵活性,并提供额外的参数来自定义转换过程。

要使用to_numeric()函数,我们只需在要转换的列上调用该函数,并指定要转换的数据类型。例如,以下代码演示了如何使用to_numeric()函数将字符串列“Age”转换为整数列:

示例

# Importing required libraries
import pandas as pd

# Creating sample DataFrame
df = pd.DataFrame({'Name': ['Prince', 'Mukul', 'Divyang', 'Rohit'],
                   'Age': ['25', '30', '35', '40'],
                   'Salary': ['50000', '60000', '70000', '80000']})

# Converting Age column to integer using to_numeric() function
df['Age'] = pd.to_numeric(df['Age'], errors='coerce', downcast='integer')

# Output
print(df.dtypes)
print(df)

在上面的代码中,我们使用pd.to_numeric()函数将DataFrame的’Age’列从字符串转换为整数。该函数接受列作为参数以及其他参数:errors=’coerce’和downcast=’integer’。 errors=’coerce’参数确保任何不可转换的值都被转换为NaN(非数字)。downcast=’integer’参数通过将结果数据类型向下转换为整数来优化内存使用。 上述代码的输出将如下所示:

输出

Name      object
Age        Int8
Salary    object
dtype: object

     Name  Age Salary
0  Prince   25  50000
1   Mukul   30  60000
2 Divyang   35  70000
3   Rohit   40  80000

在上面的输出中,我们可以看到’Age’列已被转换为Int8数据类型,表示范围从-128到127的有符号整数。’Name’和’Salary’列仍然保持为对象(字符串)数据类型。

数据帧本身显示了更新后的’Age’列,其中字符串值已经转换为相应的整数值。

因此,我们已成功使用astype()函数和to_numeric()函数将字符串转换为整数。

结论

在本教程中,我们探讨了在Pandas数据帧中将字符串数据转换为整数数据的方法。astype()函数和to_numeric()函数是将字符串转换为整数的两种最流行的方法。astype()方法在我们知道字符串列只包含整数时非常有用,而to_numeric()在处理转换错误时更加灵活。我们提供了每种方法的示例。在使用astype()方法时,确保字符串值可以转换为整数;否则,它将引发ValueError。同样,当列中存在非数字字符或缺失值时,to_numeric()函数不适用。总体而言,所使用的方法取决于项目的具体要求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记