解決に数時間かかったのでメモします。
問題点
端的にいうと、
- complex型でpd.DataFrameを作成
- df.to_csv()でcsv保存
- df.read_csv()でcsv読み込み
- 型を調べるとobject型になってる
- 色々頑張ったがうまくcomplex型に戻せない
といった感じ、詳細は以下のissueを参照。
https://github.com/pandas-dev/pandas/issues/9379
解決策
以下のissueでいい感じの解答。(上記issueの解答から飛べた)
https://stackoverflow.com/questions/16659818/how-to-read-complex-numbers-from-file-with-numpy
read_df_complex.py
import pandas as pd
df = pd.read_csv('data.csv')
df = df.apply(lambda col: col.apply(lambda val: complex(val.strip('()'))))
まとめ
pandasは複素数型に弱いらしい。あまり需要がないのかな。
余談
マークダウン記法いいね。