📌  相关文章
📜  如何在 Pandas DataFrame 中将字符串转换为整数?(1)

📅  最后修改于: 2023-12-03 15:08:43.909000             🧑  作者: Mango

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

在 Pandas 中,处理数据中字符串的转换是一项基本任务。在 DataFrame 中,将字符串转换为整数是常见的操作,这可以使用 Pandas 提供的很多方法来实现。下面将介绍几种方法。

方法 1: 使用 astype() 方法

astype() 是 Pandas 中最常用的方法之一,它可以将列的数据类型转换为指定的类型。在这种情况下,我们将字符串转换为整数类型。下面是一个简单的示例:

import pandas as pd

df = pd.DataFrame({'A': ['1', '2', '3', '4', '5'],
                   'B': ['10', '20', '30', '40', '50']})

# 使用 astype() 方法将字符串转换为整数
df['A'] = df['A'].astype(int)

print(df.dtypes)

运行后,输出结果如下:

A     int32
B    object
dtype: object

我们可以看到,类型 A 已经被转换为整数类型。但是类型 B 仍然是字符串类型。

方法 2: 使用 to_numeric() 方法

to_numeric() 方法也可以将字符串转换为整数类型。该方法还可以处理一些特殊的字符,例如错误值和缺失值。下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A': ['1', '2', '3', '4', '5'],
                   'B': ['10', '20', '30', '40', '50']})

# 使用 to_numeric() 方法将字符串转换为整数
df['A'] = pd.to_numeric(df['A'])

print(df.dtypes)

运行后,输出结果如下:

A     int64
B    object
dtype: object

我们也可以限制 to_numeric() 方法处理字符串的范围。下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A': ['1', '2', '3', '4', '5'],
                   'B': ['10', '20', '30', '40', '50'],
                   'C': ['invalid', 'invalid', '6', '7', '8']})

# 将 "C" 中的非数字字符串设置为 NaN
df['C'] = pd.to_numeric(df['C'], errors='coerce')

# 使用 astype() 方法将 "C" 转换为整数
df['C'] = df['C'].astype(int)

print(df.dtypes)

在这个示例中,我们将 "C" 中的非数字字符串设置为 NaN,然后再将其转换为整数类型。

方法 3: 使用 apply() 方法

apply() 方法可以用于对 DataFrame 中的每个元素应用某个函数。我们可以使用这个方法来将字符串转换为整数。下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A': ['1', '2', '3', '4', '5'],
                   'B': ['10', '20', '30', '40', '50']})

# 使用 apply() 方法将字符串转换为整数
df['A'] = df['A'].apply(int)

print(df.dtypes)

在这个示例中,我们使用 apply() 方法对 "A" 列中的每个元素应用了 int() 函数。

方法 4: 使用 list comprehension

我们也可以使用 list comprehension 将字符串转换为整数。下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A': ['1', '2', '3', '4', '5'],
                   'B': ['10', '20', '30', '40', '50']})

# 使用 list comprehension 将字符串转换为整数
df['A'] = [int(x) for x in df['A']]

print(df.dtypes)

在这个示例中,我们使用 list comprehension 对 "A" 列中的每个元素应用了 int() 函数。

以上就是在 Pandas DataFrame 中将字符串转换为整数的几种方法。无论您使用哪种方法,都应该选择最适合您的数据和需求的方法。