Pandas 数据框中的大号字母

Pandas 数据框中的大号字母,pandas,Pandas,我在列中使用大写字母时遇到问题。 你怎么写大写的str而不是小写的?而且不要手动操作 import pandas as pd cc =[1, 2, 3, 4] aaa = ['ala', 'babcia', 'koty', 'foki'] df = pd.DataFrame({'ID': cc, 'AAA': aaa }) 我的数据帧的目标外观: 您可以在pandas中使用.upper()函数以及列表理解: aaa = ['ala', 'babcia', 'koty', 'foki'] a

我在列中使用大写字母时遇到问题。 你怎么写大写的str而不是小写的?而且不要手动操作

import pandas as pd

cc =[1, 2, 3, 4]
aaa = ['ala', 'babcia', 'koty', 'foki']
df = pd.DataFrame({'ID': cc, 'AAA': aaa })

我的数据帧的目标外观:

您可以在pandas中使用.upper()函数以及列表理解:

aaa = ['ala', 'babcia', 'koty', 'foki']
aaa = [x.upper() for x in aaa]

使用下面的行来实现这一点

df['AAA'] = df['AAA'].apply(lambda x : x.upper())
您可以使用以下方法进行此操作:

df['AAA'] = df['AAA'].str.upper()
df

    ID  AAA
0   1   ALA
1   2   BABCIA
2   3   KOTY
3   4   FOKI

我想对答案和其他一些解决方案进行性能测试,因此我创建了以下数据框架:

df = pd.DataFrame(np.arange(1000000).reshape(1000000,1)).applymap(lambda x: np.random.choice(list('abcdefghijklm')))
就性能而言,Nathan's和Nandan's非常相似,如果不定义函数,这是最好的解决方案,因为它们有相似的执行时间:

221 ms ± 5.92 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
萨米的速度慢了20%左右,但最容易记住:

df['AAA'] = df['AAA'].str.upper()

281 ms ± 14.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
如果您希望前两个答案的性能提高15%,您可以在函数中进一步使用其中一个答案。。。我用一个小写字母创建了一个百万行数据帧

def upper(df, col):
    [x.upper() for x in df[col]]
    return


%timeit upper(df, 'AAA')

177 ms ± 3.24 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
您可以使用:

df['AAA'] = df[['AAA']].apply(lambda n: n.str.upper())