地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

DataFrameを読み込むときに、dtypeを指定

めっちゃハマった

pandas.DataFrameは列ごとに型dtypeが設定される。 astype()なんかでキャストできたりもする。

df_object = pd.read_csv('hoge.csv',index_col=0, dtype=object)
print(df_object)
#        a    b    c  d
# 1  001  100  x
# 2  020  NaN  y
# 3  300  300  z

print(df_object.dtypes)
# a    object
# b    object
# c    object
# d    object
# dtype: object

print(df_object.applymap(type))
#                    a              b                c              d
# 1  <class 'str'>  <class 'str'>    <class 'str'>  <class 'str'>
# 2 <class 'str'>  <class 'str'>  <class 'float'>  <class 'str'>
# 3 <class 'str'>  <class 'str'>    <class 'str'>  <class 'str'>

この際にキャスト不可能なtypeを指定してしまうとValueErrorとなる。 書式やら相互変換の話は下記がとても参考になりました。

note.nkmk.me