首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫:麻烦计数首都

熊猫:麻烦计数首都
EN

Stack Overflow用户
提问于 2017-07-18 11:59:00
回答 1查看 46关注 0票数 1

我有一个Pandas DataFrame,df,包含一个名为_text的列。我试着计算每一段文字中大写字母的数目,如下所示:

代码语言:javascript
复制
text_capitals_count = [sum(1 for char in x if char.isupper()) for x in df['_text']]

如果文本中的任何地方都有大写字母,text_capitals_count将被设置为1,而不是给我计数。

我做错什么了?我以为这会把每一段文字的大写字母数起来.

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 12:19:18

我认为您需要split并通过[0]选择文本的第一个字符。

代码语言:javascript
复制
df = pd.DataFrame({'_text':['FFfgdFF','TT gd F','GG','EE EE U']})  
print (df)
     _text
0  FFfgdFF
1  TT gd F
2       GG
3  EE EE U

a = [sum(1 for char in x if char[0].isupper()) for x in df['_text'].str.split()]
print (a)
[1, 2, 1, 3]

a = [sum(1 for char in x.split() if char[0].isupper()) for x in df['_text']]
print (a)
[1, 2, 1, 3]

另一种解决办法是:

代码语言:javascript
复制
df['a'] = df['_text'].str.split(expand=True)
                     .apply(lambda x: x.str[0].str.isupper()).sum(axis=1).astype(int)
print (df)
     _text  a
0  FFfgdFF  1
1  TT gd F  2
2       GG  1
3  EE EE U  3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45166163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档