每行计算大写

时间:2017-06-12 19:17:28

标签: python pandas numpy dataframe

我有一个数据框,我想创建一个新列,其值等于另一列中大写的总和/计数。 (最快的方式因为我有一个半木PC) 例如:

         Col1                     Upper

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

编辑: 我试过这个:

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

其中'Upper'是Col1

非常感谢!

1 个答案:

答案 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