2017-06-12 11 views
1

データフレームがあり、別の列の大文字の合計/カウントに等しい値で新しい列を作成したいと考えています。 (私は半木のPCを持っているcuzの最速の方法) 例:各行で大文字をカウントする

  Col1      Upper 

1  AfK is Bad     3 
2  Afk is bad     1 
3  Python better than R   2 

EDIT: 私がしようと、これを持っている: 'アッパー' は

多くの感謝のCol1

ある

for i in df.index: 
    df['Upper'].iloc[[i]] = sum(1 for c in (df['Upper'].iloc[[i]]) if c.isupper()) 

!正規表現と

+0

あなたはdf.indexで、これまで –

+0

を私のために何をしようとしなかった:cに対する DF [ 'アッパー'] ILOC [[I]] = SUM(1。 c.isupper()) の場合は結果がわからないので(btwはここで同じcolを変更しています) – hdatas

+0

あなたは編集できましたコメントを投稿するのではなく投稿を投稿する。 –

答えて

4

使用pd.Series.str.count[A-Z]

df.assign(Upper=df.Col1.str.count('[A-Z]')) 

        Col1 Upper 
1   AfK is Bad  3 
2   Afk is bad  1 
3 Python better than R  2 
+1

Genius!どうもありがとう ! – hdatas

+0

@hdatasうれしいです。 – piRSquared

+1

ここもう一度です:) +1 – Vaishali

関連する問題