Pandas:列(カラム)をreplaceしてデータ型変換を行うサンプルコード

記事公開日:
最終更新日:

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
"""

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報TwitterLinkedIn、またRSSfeedlyにてお知らせしていますのでフォローよろしくお願い致します。