我的数据集中有一个列,它有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'"。有人能告诉我怎么解决这个问题?
答案 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+')