4

Mathematica から csv ファイルにデータをエクスポートしました。ファイル構造は次のようになります。

"x","y","Ex","Ey"
0.,0.,0.+0.*I,-3.0434726787506006*^-12+3.4234894344189825*^-12*I
0.,0.,0.+0.*I,-5.0434726787506006*^-12+10.4234894344189825*^-13*I
...

pandas でデータを読み込んでいますが、エラーが発生します

import csv
import pandas as pd
import numpy as np

df=pd.read_csv('filename.csv')

df.columns=['x', 'y', 'Ex','Ey']

df['Ey'] = df['Ey'].str.replace('*^','E')
df['Ey'] = df['Ey'].str.replace('I','1j').apply(lambda x: np.complex(x))

編集: コードの最後の 2 行目に次のエラーが表示されます。

Traceback (most recent call last):
  File "plot.py", line 6, in <module>
    df['Ey'] = df['Ey'].str.replace('*^','E')
  File "/home/.../.local/lib/python2.7/site-packages/pandas/core/strings.py", line 1579, in replace
    flags=flags)
  File "/home/.../.local/lib/python2.7/site-packages/pandas/core/strings.py", line 424, in str_replace
    regex = re.compile(pat, flags=flags)
  File "/usr/lib/python2.7/re.py", line 194, in compile
    return _compile(pattern, flags)
  File "/usr/lib/python2.7/re.py", line 251, in _compile
    raise error, v # invalid expression
sre_constants.error: nothing to repeat

代わりに書くと

df['Ey'] = df['Ey'].str.replace('*','E')

また

df['Ey'] = df['Ey'].str.replace('^','E')

エラーが発生しません。置き換えられるキャラクターは1つしか与えられないようですか?

4

1 に答える 1