我有以下df
data = {'Name':['TOMy', 'NICKs', 'KRISHqws', 'JACKdpo'], 'Age':[20, 21, 19, 18]}
如何从“名称”列中删除小写字母,以便在查看data['Name']
时拥有TOM,NICK,KRISH,JACK
。
我尝试了以下方法,但是没有运气,
data['Name'].mask(data['Name'].str.match(r'^[a-z]+$'))
data['Name'] = data['Name'].str.translate(None,string.ascii_lowercase)
答案 0 :(得分:3)
您可以使用.str.replace(..)
[pandas-doc]更新name
列:
df['Name'] = df['Name'].str.replace('[a-z]', '')
对于给定的样本数据,这给我们:
>>> df['Name'].str.replace('[a-z]', '')
0 TOM
1 NICK
2 KRISH
3 JACK
Name: Name, dtype: object
答案 1 :(得分:2)
如果您不喜欢RegEx,也可以尝试以下方法:
df['Name'].apply(lambda x: ''.join([letter for letter in x if letter.isupper()]))
对于Name
列中的所有行,将所有大写字母连接起来。