2017-08-26 60 views
0

我的數據集中有一列有dtype對象,但實際上是整數。我如何將它轉換爲int並在該列中計數?在大熊貓中將列從對象轉換爲int並進行計數

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

的這裏的問題是,這家B柱具有D型=需要被轉換的對象爲int,這樣我可以知道什麼是B中的計數?我試圖使用:

B.astype(str).astype(int) 

但它給了我一個錯誤「ValueError:無效文字爲int()與基地10:'2,3,45'」。有人可以告訴我如何解決這個問題?

+0

是的,它可以,我可以計數增加一個新的C柱也。 – Sahil

回答

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

您可以使用regexp字符串進行計數。

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

或者你可以

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

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