2017-06-12 3 views
1

Ich habe einen Datenrahmen und ich möchte eine neue Spalte mit Werten gleich der Summe/Anzahl der Großbuchstaben in einer anderen Spalte erstellen. (Schnellster Weg, denn ich habe ein halb Holz pc) Ex:Zähle Großbuchstaben in jeder Zeile

  Col1      Upper 

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

EDIT: Ich habe versucht, diese:

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

wo 'Obere' ist Col1

Vielen Dank!

+0

was haben Sie versucht, so weit –

+0

für i in df.index: df [ 'Obere'] ILoc [[i]] = Summe (1 für c. in (df ['Upper']. iloc [[i]]) wenn c.isupper()) aber es dauert ewig, so dass ich die Ergebnisse nicht kenne (übrigens wechsle ich die gleiche Spalte) – hdatas

+0

Sie könnten bearbeitet haben die Post, anstatt im Kommentar zu posten. –

Antwort

4

Verwenden pd.Series.str.count mit dem regex [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

Genie !! Danke vielmals ! – hdatas

+0

@hdatas froh, ich könnte helfen. – piRSquared

+1

Hier ist es wieder :) +1 – Vaishali

Verwandte Themen