让我们看看 Pandas DataFrame 中将字符串转换为整数的方法:
方法一:使用Series.astype()方法。
用法:Series.astype(dtype, copy=True, errors=’raise’)
参数:此方法将采用以下参数:
- dtype:要将系列转换为的数据类型。 (例如 str、float、int)。
- copy:制作 DataFrame /系列的副本。
- errors:转换为无效数据类型时引发错误。例如 dict 到字符串。 ‘raise’ 将引发错误,‘ignore’ 将通过而不引发错误。
返回:具有更改数据类型的系列。
最有效的方法之一是 Pandas astype()。它用于修改一组数据类型。当 DataFrame 是从 csv 文件创建时导入的列,并且数据类型是自动配置的,这几次是不应该的。例如,工资列可以作为字符串导入,但我们必须将其转换为浮点数才能进行操作。
范例1:
Python3
# import pandas library
import pandas as pd
# dictionary
Data = {'Name':['GeeksForGeeks','Python'],
'Unique ID':['900','450']}
# create a dataframe object
df = pd.DataFrame(Data)
# convert string to an integer
df['Unique ID'] = df['Unique ID'].astype(int)
# show the dataframe
print (df)
print("-"*25)
# show the data types
# of each columns
print (df.dtypes)
输出:
范例2:
Python3
# import pandas library
import pandas as pd
# dictionary
Data = {'Algorithm':['Graph', 'Dynamic Programming',
'Number Theory',
' Sorting And Searching'],
'Problems':['62', '110', '40', '55']}
# create a dataframe object
df = pd.DataFrame(Data)
# convert string to integer
df['Problems'] = df['Problems'].astype(int)
# show the dataframe
print (df)
print("-"*25)
# show the data type
# of each columns
print (df.dtypes)
输出:
方法二:使用pandas.to_numeric()方法。
用法: pandas.to_numeric(arg, errors=’raise’, downcast=None)
参数:此方法将采用以下参数:
- arg:列表、元组、一维数组或系列。
- errors:{‘ignore’, ‘raise’, ‘coerce’},默认 ‘raise’
->如果是 ‘raise’,那么无效解析会引发异常
->如果是 ‘coerce’,则无效解析将被设置为 NaN
->如果 ‘ignore’,则无效解析将返回输入 - downcast:[default None] 如果不是 None,并且如果数据已成功转换为数字 dtype,则根据以下规则将结果数据向下转换为可能的最小数字 dtype:
->‘integer’ 或 ‘signed’:最小有符号 int dtype (min.:np.int8)
->‘unsigned’:最小的无符号整数 dtype(最小值:np.uint8)
->‘float’:最小浮点数据类型(最小值:np.float32)
返回值:如果解析成功,则为数字。请注意,返回类型取决于输入。如果是 Series,则为 Series,否则为 ndarray。
pandas.to numeric() 是在 Pandas 中将参数转换为数字形式的广泛使用的方法之一。
范例1:
Python3
# import pandas library
import pandas as pd
# dictionary
Data = {'Name':['GeeksForGeeks','Python'],
'Unique ID':['900','450']}
# create a dataframe object
df = pd.DataFrame(Data)
# convert integer to string
df['Unique ID'] = pd.to_numeric(df['Unique ID'])
# show the dataframe
print (df)
print("-"*30)
# show the data type
# of each columns
print (df.dtypes)
输出:
范例2:
Python3
# import pandas library
import pandas as pd
# dictionary
Data = {'Algorithm':['Graph', 'Dynamic Programming',
'Number Theory',
' Sorting And Searching'],
'Problems':['62', '110', '40', '55']}
# create a dataframe object
df = pd.DataFrame(Data)
# convert strint to an integer
df['Problems'] = pd.to_numeric(df['Problems'])
# show the dataframe
print (df)
print("-"*30)
# show the data type
# of each column
print (df.dtypes)
输出:
相关用法
- Pandas DataFrame Integer转Datetime用法及代码示例
- Python Pandas DataFrame.fillna()用法及代码示例
- Pandas DataFrame Index转Column用法及代码示例
- Pandas DataFrame Integers转Strings用法及代码示例
- Pandas DataFrame Strings转Floats用法及代码示例
- Pandas DataFrame Integers转Floats用法及代码示例
- Pandas DataFrame Floats转Strings用法及代码示例
- Pandas DataFrame Float转Datetime用法及代码示例
注:本文由纯净天空筛选整理自shardul_singh_tomar大神的英文原创作品 How to Convert String to Integer in Pandas DataFrame?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。