2017-03-31 86 views

回答

2

IIUC:

In [81]: 
df = pd.DataFrame({'label':list('bmn')}) 
df 

Out[81]: 
    label 
0  b 
1  m 
2  n 

In [82]:  
df['ascii'] = df['label'].apply(ord) 
df 

Out[82]: 
    label ascii 
0  b  98 
1  m 109 
2  n 110 

它可能更快地做一个列表理解:

In [83]: 
df['ascii'] = [ord(x) for x in df['label']] 
df 

Out[83]: 
    label ascii 
0  b  98 
1  m 109 
2  n 110 

您还可以使用map

In [85]: 
df['ascii'] = df['label'].map(ord) 
df 

Out[85]: 
    label ascii 
0  b  98 
1  m 109 
2  n 110 

时序

一个小DF:

In [87]: 
%timeit [ord(x) for x in df['label']] 
%timeit df['label'].map(ord) 
%timeit df['label'].apply(ord) 

100000 loops, best of 3: 14 µs per loop 
10000 loops, best of 3: 123 µs per loop 
10000 loops, best of 3: 146 µs per loop 

对于3K DF:

In [89]: 
%timeit [ord(x) for x in df['label']] 
%timeit df['label'].map(ord) 
%timeit df['label'].apply(ord) 

1000 loops, best of 3: 246 µs per loop 
1000 loops, best of 3: 1 ms per loop 
1000 loops, best of 3: 1.02 ms per loop 

所以这里的列表中理解鳞比其他方法

0

例如更好“一” 的ASCII码= 97} 写打印(ORD( “A”))

打印(ORD( “A”))

的答案是97

+0

这个答案与'pandas'无关 – EdChum

相关问题