当前位置: 首页 > 知识库问答 >
问题:

所有熊猫列显示为字符串[重复]

顾嘉良
2023-03-14

我正在从数据库中获取数据,我怀疑其中的所有数据都被简单地设置为string,而不是float、int等。当我将数据导入到pandas dataframe中时,所有数据都显示为字符串。

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]
products['test'] = products['product_description_lenght'] + 1
TypeError: can only concatenate str (not "int") to str

我试过str.isNumeric,但所有内容都显示为非数字。

我能做些什么来检测数值吗?

共有1个答案

申屠瀚海
2023-03-14

尝试使用以下方法:

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)
 类似资料:
  • 我有这个“file.csv”文件要和熊猫一起读: 使用 输出为: 我知道,列是一个完整的字符串,因为: 我需要将其作为字符串列表来阅读,如。我尝试了这个问题中提供的解决方案,但没有成功,因为我的和字符实际上会把事情搞砸。 预期输出应为:

  • 问题内容: 我正在使用Pandas读取一堆CSV。将选项json传递给dtype参数,以告诉pandas将哪些列读取为字符串而不是默认值: 在我的场景中,除少数特定列外, 所有 列均应读取为字符串。因此,与其将几列定义为str in ,不如将我选择的几列设置为int或float。有没有办法做到这一点? 这是循环遍历具有不同列的各种CSV的循环,因此在将整个csv读取为字符串()后进行直接列转换将不

  • 问题内容: 我有一个带有ID号的大型数据框: 这些现在都是字符串。 我想转换为不使用循环-为此我使用。 问题是我的某些行包含无法转换为的脏数据,例如 如何(不使用循环)删除这些类型的事件,以便我可以放心使用? 问题答案: 您需要向功能添加参数: 如果是列: 但非数字会转换为,因此所有值都是。 对于需要转换到一些值,例如,然后转换为: 样品: 编辑:如果使用0.25+大熊猫,则可以使用:

  • 问题内容: 如问题所述,我有一个很大的数据框,但看起来像: 我试图摆脱文本数据,并将其替换为预定义的数值等效项。例如,在这种情况下,我想分别用或替换的或值。有没有一种方法无需我手动输入和更改值? 问题答案: / 上面的一个有趣的通用版本: 一切都不是。

  • 我想知道如何获取日期列的值。键入df时,“日期”列不显示。柱。我正试图用df将这个df转换成一个Json文件。to_json(),它获取除日期以外的所有值。谢谢大家。 输入[49]:输入(df)输出[49]:熊猫。果心框架数据帧

  • 问题内容: 我最近发现了熊猫的“分配”方法,我发现它非常优雅。我的问题是新列的名称被指定为关键字,因此它不能包含空格或破折号。 但是如果我想将新列命名为“ ln(A)”怎么办?例如 我知道我可以在.assign调用之后立即重命名该列,但是我想了解更多有关此方法及其语法的信息。 问题答案: 您可以将关键字参数传递为字典,如下所示: