将Pandas列的数据类型转换为int
在这篇文章中,我们将看到如何将Pandas列转换为int。一旦使用外部数据创建了pandas.DataFrame,系统地将数字列作为数据类型对象,而不是int或float,创建数字任务是不可能的。我们将传递任何Python、Numpy或Pandas数据类型来改变数据框架的所有列的类型,或者我们将传递一个以列名为键、以数据类型为值的字典来改变所选列的类型。
这里的astype()函数使我们能够表达你需要的数据类型。它具有极强的适应性,即你可以尝试从一种类型到另一种类型。
步骤:
- Import pandas
- Initialize DataFrame
- 将函数应用于DataFrame列
- 打印列的数据类型
示例 1:
我们首先使用标准的语法导入pandas模块。然后我们创建了一个数据框架,数值为1、2、3、4,列索引为a和b。接下来我们使用astype()方法转换列的类型。最后的输出是转换后的列的数据类型。
代码:
import pandas as pd
df = pd.DataFrame([["1", "2"], ["3", "4"]],
columns = ["a", "b"])
df["a"] = df["a"].astype(str).astype(int)
print(df.dtypes)
输出:
示例 2:
我们首先使用标准的语法导入了pandas模块。然后我们创建了一个数据框架,其值为’A’。[1, 2, 3, 4, 5], ‘B’:[‘a’, ‘b’, ‘c’, ‘d’, ‘e’], ‘C’:[1.1, ‘1.0’, ‘1.3’, 2, 5],列索引为A、B和C。我们使用名为convert_dict的字典来转换特定的A和C列。我们将这个数据框架命名为df。接下来,我们使用astype()方法转换列的类型。最后的输出是转换后的列的数据类型。
import pandas as pd
# sample dataframe
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': ['a', 'b', 'c', 'd', 'e'],
'C': [1.1, '1.0', '1.3', 2, 5] })
# using dictionary to convert specific columns
convert_dict = {'A': int,
'C': float }
df = df.astype(convert_dict)
print(df.dtypes)
输出: