This post is also available in: English-US (英語)
pandasを利用していて、数字区切りのカンマ(,)を replace() 関数で置換してデータ型変換を行うサンプルコードを、メモ代わりに書いています。
サンプルコード中のコメントにも書いていますが、replaceするSeriesのデータ型が str の場合には '.str' アクセサを利用して、floatの場合にはダイレクトに replace() を利用して置換可能です。
たまに利用すると、忘れてしまっている仕様です。
import pandas as pd
# サンプルデータ
sample_list = {'sampleA':["1,000","2,000","3,000"],
'sampleB':["4,000","5,000","6,000"]}
# データフレーム作成
df = pd.DataFrame(sample_list)
print(df)
"""
sampleA sampleB
0 1,000 4,000
1 2,000 5,000
2 3,000 6,000
"""
# データ型を確認
print(type(df['sampleA'][0]))
"""
<class 'str'>
"""
# データ型が str の場合 .str アクセサを利用
df['sampleA'] = df['sampleA'].str.replace(',','').astype(float)
print(df)
"""
sampleA sampleB
0 1000.0 4,000
1 2000.0 5,000
2 3000.0 6,000
"""
# データ型がfloatの場合にはSeriesに対してダイレクトに replace() を利用
df['sampleA'] = df['sampleA'].replace(1000, 0)
print(df)
"""
sampleA sampleB
0 0.0 4,000
1 2000.0 5,000
2 3000.0 6,000
"""

