📅  最后修改于: 2023-12-03 15:08:43.909000             🧑  作者: Mango
在 Pandas 中,处理数据中字符串的转换是一项基本任务。在 DataFrame 中,将字符串转换为整数是常见的操作,这可以使用 Pandas 提供的很多方法来实现。下面将介绍几种方法。
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 仍然是字符串类型。
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,然后再将其转换为整数类型。
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() 函数。
我们也可以使用 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 中将字符串转换为整数的几种方法。无论您使用哪种方法,都应该选择最适合您的数据和需求的方法。