最小限の変更で済ますなら、
python
1with open(Mypath,encoding=("utf-8-sig")) as f:
2 reader=csv.reader(f, quoting=csv.QUOTE_NONNUMERIC)
3 print(reader)
4 print(type(reader))
5 for row in csv.reader(f):
6 a_magnitude = float(row[0])
7 mag.append(a_magnitude)
8 a_phase = float(row[1])
9 ph.append(a_phase)
10 v.append(complex(re(a_magnitude,a_phase),im(a_magnitude,a_phase)))
です。
ただし、このコードではエクセルの.xlsxファイルは読めません。
入力ファイルをエクセルで開き、csvとして保存する、で保存してできる.csvファイルを指定してください。
エクセルの.xlsxファイルを読みたければopenpyxlを使って読むか、pandasを使って読むことになるので大幅な変更が必要です。
pandas版を作ってみました。原型は留めていないですね。
python
1import pandas as pd
2import cmath
3
4df = pd.read_excel('complex.xlsx', header=None)
5df.columns = ['mag', 'ph']
6df['v'] = df.apply(lambda row: cmath.rect(row['mag'], row['ph']*cmath.pi), axis=1)
7print(df)
8mag = list(df['mag'])
9ph = list(df['ph'])
10v = list(df['v'])
11print(mag)
12print(ph)
13print(v)
実行結果は以下です。
python
1>>> import pandas as pd
2>>> import cmath
3>>>
4>>> df = pd.read_excel('complex.xlsx', header=None)
5>>> df.columns = ['mag', 'ph']
6>>> df['v'] = df.apply(lambda row: cmath.rect(row['mag'], row['ph']*cmath.pi), axis=1)
7>>> print(df)
8 mag ph v
90 0.487437 0.000000 0.487437+0.000000j
101 0.653218 134.639831 -0.277814+0.591197j
112 0.193873 166.950760 -0.191558+0.029871j
123 0.202087 123.128914 -0.185739-0.079625j
134 0.583534 154.655045 -0.273125+0.515669j
145 0.128547 56.141060 0.116130+0.055120j
156 0.129435 -154.545288 -0.018354-0.128128j
167 0.321489 177.046280 -0.318097-0.046578j
178 0.029101 138.556107 -0.005103+0.028651j
189 0.192596 -175.898743 0.182933+0.060239j
19>>> mag = list(df['mag'])
20>>> ph = list(df['ph'])
21>>> v = list(df['v'])
22>>> print(mag)
23[0.487436891, 0.653218389, 0.193872913999999, 0.202087417, 0.583534479, 0.128547326, 0.12943536, 0.3214885, 0.029101485, 0.192596287]
24>>> print(ph)
25[0.0, 134.639831499999, 166.9507599, 123.1289139, 154.6550446, 56.14105988, -154.5452881, 177.0462799, 138.5561066, -175.898742699999]
26>>> print(v)
27[(0.487436891+0j), (-0.2778139468650384+0.5911968154980412j), (-0.19155787387867684+0.02987118574700291j), (-0.18573943062119574-0.07962529762736151j), (-0.27312543609590767+0.5156694525946071j), (0.11613020926096146+0.05511977429884463j), (-0.018353576473760323-0.12812750933718892j), (-0.31809650787860944-0.04657754080760128j), (-0.0051030261112949655+0.028650576847816987j), (0.18293344364875225+0.06023856705629006j)]