删除熊猫数据框列中的小写字母

时间:2020-03-11 11:31:52

标签: python pandas

我有以下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)

2 个答案:

答案 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列中的所有行,将所有大写字母连接起来。