Pandas 数据框中的大号字母
我在列中使用大写字母时遇到问题。 你怎么写大写的str而不是小写的?而且不要手动操作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
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())