寻找一列中不以大写字母开头的条目

2024-05-20 10:45:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下的数据帧:

df = {'id': [1,2,3,4,5,6,7], 'name': [Zeke,such,a,Maya,Derek,an,the]}

顺便说一下,这是一个巨大的数据帧。 现在我想找出错误的名字列表,比如“such”,“a”,“an”,“the”。 我想把它们去掉,做一个df,比如:

df_new= {'id': [1,4,5], 'name': [Zeke,Maya,Derek]}

我已经试着通过以下方法找到每个特定的错误名称:

df.query('name=="a"')
df1.query('name=="an"')
df1.query('name=="the"')

问题是,我不知道有多少不同的错误名称存在。正确名称和错误名称之间的唯一区别是第一个字母(samll或大写)

感谢您的帮助


Tags: the数据name名称aniddfderek
1条回答
网友
1楼 · 发布于 2024-05-20 10:45:51

使用^{}检查按^{}筛选的大写字母的第一个字符:

df = df[df['name'].str.istitle()]

或者通过索引获取第一个值并通过^{}进行检查:

df = df[df['name'].str[0].str.isupper()]

为获得更好的性能,无缺失值使用列表理解:

df = df[[x.istitle() for x in df['name']]]
df = df[[x[0].isupper() for x in df['name']]]

print (df)

   id   name
0   1   Zeke
3   4   Maya
4   5  Derek

相关问题 更多 >