在pandas中将列从object转换为int并进行计数

时间:2017-08-26 14:49:06

标签: python pandas

我的数据集中有一个列,它有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:对于带有基数10的int()的无效文字:' 2,3,45'"。有人能告诉我怎么解决这个问题?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

或者你可以

df.B.apply(lambda x :len(x.split(',')))

Out[117]: 
0    3
1    4
2    5
Name: B, dtype: int64

答案 2 :(得分:-1)

您可以使用regexp字符串字符进行计数。

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