Oha Kaiden

はなまるうどん

pd.DataFrame: df.to_csv()で保存した複素数データをdf.read_csv()で読み込む方法

解決に数時間かかったのでメモします。

問題点:

端的にいうと、

  1. complex型でpd.DataFrameを作成
  2. df.to_csv()でcsv保存
  3. df.read_csv()でcsv読み込み
  4. 型を調べるとobject型になってる
  5. 色々頑張ったがうまくcomplex型に戻せない

といった感じ、詳細は以下のissueを参照。

github.com

解決策:

df = pd.read_csv('data.csv')
df = df.apply(lambda col: col.apply(lambda val: complex(val.strip('()'))))

stackoverflow.com

 

まとめ:

pandasは複素数型に弱いらしい。でもpandas使うと色々楽だし…

 

余談:

この記事Qiitaの方がよくない?(今更)