【问题标题】:Converting a column from object to int in pandas and taking a count在 Pandas 中将列从 object 转换为 int 并进行计数
【发布时间】:2026-01-29 09:45:01
【问题描述】:

我的数据集中有一列具有 dtype 对象,但实际上是整数。如何将其转换为 int 并计算该列中的计数?

A  B
1  2,3,45
2  3,76,455,4
3  2,22,67,78,2

这里的问题是这个 B 列有 dtype = object 需要转换为 int 以便我可以知道 B 中的计数是多少?我尝试使用:

B.astype(str).astype(int) 

但它给了我一个错误“ValueError:int() 的无效文字,基数为 10:'2,3,45'”。谁能告诉我如何解决这个问题?

【问题讨论】:

  • 是的,我也可以添加一个带有计数的新列 C。

标签: python pandas


【解决方案1】:

您可以让B 保留字符串并仍然通过计数, 逗号来获得计数。

In [118]: df.assign(C=df.B.str.count(',').add(1))
Out[118]:
   A             B  C
0  1        2,3,45  3
1  2    3,76,455,4  4
2  3  2,22,67,78,2  5

【讨论】:

    【解决方案2】:

    或者你也可以

    df.B.apply(lambda x :len(x.split(',')))
    
    Out[117]: 
    0    3
    1    4
    2    5
    Name: B, dtype: int64
    

    【讨论】:

      【解决方案3】:

      您可以使用正则表达式字符串字符来计数。

      df.B.str.count('\w+')
      

      【讨论】:

        最近更新 更多