2017-03-31 107 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

相關問題