python - 所有 pandas 列都显示为字符串
问题描述
我正在从数据库中获取数据,我怀疑其中的所有数据都只是设置为字符串而不是浮点数、整数等。当我将数据导入熊猫数据框时,它都显示为字符串。
print("products.dtypes")
product_category_name object
product_description_lenght object
product_height_cm object
product_id object
product_length_cm object
product_name_lenght object
product_photos_qty object
product_weight_g object
product_width_cm object
dtype: object
或者
print (products.applymap(type))
结果是:
product_category_name product_description_lenght product_height_cm \
0 <class 'str'> <class 'str'> <class 'str'>
1 <class 'str'> <class 'str'> <class 'str'>
2 <class 'str'> <class 'str'> <class 'str'>
3 <class 'str'> <class 'str'> <class 'str'>
4 <class 'str'> <class 'str'> <class 'str'>
... ... ... ...
32946 <class 'str'> <class 'str'> <class 'str'>
32947 <class 'str'> <class 'str'> <class 'str'>
32948 <class 'str'> <class 'str'> <class 'str'>
32949 <class 'str'> <class 'str'> <class 'str'>
32950 <class 'str'> <class 'str'> <class 'str'>
product_id product_length_cm product_name_lenght product_photos_qty \
0 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
1 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
2 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
3 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
4 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
... ... ... ... ...
32946 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
32947 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
32948 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
32949 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
32950 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
product_weight_g product_width_cm
0 <class 'str'> <class 'str'>
1 <class 'str'> <class 'str'>
2 <class 'str'> <class 'str'>
3 <class 'str'> <class 'str'>
4 <class 'str'> <class 'str'>
... ... ...
32946 <class 'str'> <class 'str'>
32947 <class 'str'> <class 'str'>
32948 <class 'str'> <class 'str'>
32949 <class 'str'> <class 'str'>
32950 <class 'str'> <class 'str'>
[32951 rows x 9 columns]
当我查看数据时,有def。那里的数值。我试图取一个值并将其加 1 无济于事。
products['test'] = products['product_description_lenght'] + 1
TypeError: can only concatenate str (not "int") to str
我试过 str.isnumeric 但一切都显示为非数字。
我可以做些什么来检测数值吗?
解决方案
尝试使用以下内容:
import numbers
products['test'] = pd.to_numeric(products['product_description_lenght'], errors='ignore').apply(lambda x: x + 1 if isinstance(x, numbers.Number) else x)
推荐阅读
- html - 有没有办法设置成为预制 HTML链接的电子邮件标签的样式?
- python - Python>bs4 根据下拉列表中的选择抓取网站
- windows - 访问被拒绝。由于 Windows 10 上的权限,如何解决 docker cp 问题?
- .net - 动态更改视图组件
- c# - C# - Win Forms - WebBrowser Control - 文档与显示的不同
- asp.net-core - 如何使用 ASP.NET Core 使上游异常返回 UnprocessableEntityResult?
- python - 在追加打开文件时,如何为 file.write 创建要遵循的路径
- flutter - 没有中间状态的可折叠 SliverAppBar
- flutter - Flutter:查找对象并在对象内部更新其值
- django - Django 更新现有的 ImageField 不起作用