私は 'label'という名前の列に 'b'、 'm'、 'n'などの値を保持するデータフレームを持っています。データフレームの列をcharからasciiの整数に変換するにはどうすればいいですか? [パンダ]
代わりに、文字。 どうすればよいですか?
私は 'label'という名前の列に 'b'、 'm'、 'n'などの値を保持するデータフレームを持っています。データフレームの列をcharからasciiの整数に変換するにはどうすればいいですか? [パンダ]
代わりに、文字。 どうすればよいですか?
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
タイミング
K 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
:小さな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
だからここにリストの内包が他の方法
例えばより良いスケール"" アスキーで= 97} 書き込みプリント(ORD( "A"))
プリント(ORD( "A"))
答えは申し訳ありませんが、あなたは97
この回答は 'pandas'とは関係ありません – EdChum
あることになります各文字の 'ord'値を求めていますか? – EdChum