Pandas 将字符串转换为数字类型
本教程解释了如何使用 pandas.to_numeric()
方法将 Pandas DataFrame 的字符串值转换为数字类型。
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": ["300", "400", "350", "100", "1000", "400"],
}
)
print(items_df)
输出:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 343 Laptop 1000
5 565 Bed 400
我们将用上面的例子来演示如何将 DataFrame 的值转换为数字类型。
pandas.to_numeric()
方法
语法
pandas.to_numeric(arg, errors="raise", downcast=None)
它将作为 arg
传递的参数转换为数字类型。默认情况下,arg
将被转换为 int64
或 float64
。我们可以设置 downcast
参数的值,将 arg
转换为其他数据类型。
使用 pandas.to_numeric()
方法将 Pandas DataFrame 的字符串值转换为数字类型
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": ["300", "400", "350", "100", "1000", "400"],
}
)
print("The items DataFrame is:")
print(items_df, "\n")
print("Datatype of Cost column before type conversion:")
print(items_df["Cost"].dtypes, "\n")
items_df["Cost"] = pd.to_numeric(items_df["Cost"])
print("Datatype of Cost column after type conversion:")
print(items_df["Cost"].dtypes)
输出:
The items DataFrame is:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 343 Laptop 1000
5 565 Bed 400
Datatype of Cost column before type conversion:
object
Datatype of Cost column after type conversion:
int64
它将 items_df
中 Cost
列的数据类型从 object
转换为 int64
。
将 Pandas DataFrame 中的字符串值转换为含有其他字符的数字类型
如果我们想将一列转换成数值类型,其中有一些字符的值,我们得到一个错误说 ValueError: Unable to parse string
。在这种情况下,我们可以删除所有非数字字符,然后进行类型转换。
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": ["$300", "$400", "$350", "$100", "$1000", "$400"],
}
)
print("The items DataFrame is:")
print(items_df, "\n")
print("Datatype of Cost column before type conversion:")
print(items_df["Cost"].dtypes, "\n")
items_df["Cost"] = pd.to_numeric(items_df["Cost"].str.replace("$", ""))
print("Datatype of Cost column after type conversion:")
print(items_df["Cost"].dtypes, "\n")
print("DataFrame after Type Conversion:")
print(items_df)
输出:
The items DataFrame is:
Id Name Cost
0 302 Watch $300
1 504 Camera $400
2 708 Phone $350
3 103 Shoes $100
4 343 Laptop $1000
5 565 Bed $400
Datatype of Cost column before type conversion:
object
Datatype of Cost column after type conversion:
int64
DataFrame after Type Conversion:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 343 Laptop 1000
5 565 Bed 400
它删除了与 Cost
列的值相连的 $
字符,然后使用 pandas.to_numeric()
方法将这些值转换为数字类型。
相关文章
计算 Pandas DataFrame 中的方差
发布时间:2024/04/23 浏览次数:181 分类:Python
-
本教程演示了如何计算 Python Pandas DataFrame 中的方差。
查找已安装的 Pandas 版本
发布时间:2024/04/23 浏览次数:116 分类:Python
-
在本文中,我们将介绍如何查找已安装的 Python Pandas 库版本。我们使用了内置版本功能和其他功能来显示其他已安装版本的详细信息。
Pandas 中的 Groupby 索引列
发布时间:2024/04/23 浏览次数:79 分类:Python
-
本教程将介绍如何使用 Python Pandas Groupby 对数据进行分类,然后将函数应用于类别。通过示例使用 groupby() 函数按 Pandas 中的多个索引列进行分组。
Pandas 通过 Groupby 应用变换
发布时间:2024/04/23 浏览次数:180 分类:Python
-
本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。