【发布时间】:2018-11-09 00:41:11
【问题描述】:
我有一个类似的数据框 -
FileName PageNo LineNo EntityName
1 17743633 - 1 TM000002 69 Ambuja Cement Limited
2 17743633 - 1 TM000003 14 Vessel Name
3 17743633 - 1 TM000003 12 tyre Chips (Shredded Tyres)
4 17743633 - 1 TM000006 22 ambuja Cement Limited
5 17743633 - 1 TM000006 28 Binani Cement Limited
我必须从 datframe 中删除那些 EntityName 列的第一个字母为小写的行。即我必须保留以大写开头的值。
到现在我已经习惯了方法-
df['EntityName'] = map(lambda x: x[0].isupper(), df['EntityName'])
但它给出的是 NaN 值。
我尝试的另一件事是正则表达式。
df['EntityName'] = df['EntityName'].str.replace('^[a-z]+$','')
但它没有显示任何效果。
另一个是 -
qw = df.EntityName.str[0]
df = df[qw.isupper()]
但它显示错误 -
“系列”对象没有属性“isupper”
有人可以建议我正确的代码 sn-p 或任何提示吗?
【问题讨论】:
-
我找到了一个解决方案 - df = df[df.EntityName.apply(lambda x: x[0].isupper())]
-
如果有人有执行时间更短的解决方案,请分享。
标签: python string python-3.x pandas dataframe