回答編集履歴
1
pandas版を追加
answer
CHANGED
@@ -17,4 +17,53 @@
|
|
17
17
|
ただし、このコードではエクセルの.xlsxファイルは読めません。
|
18
18
|
入力ファイルをエクセルで開き、csvとして保存する、で保存してできる.csvファイルを指定してください。
|
19
19
|
|
20
|
-
エクセルの.xlsxファイルを読みたければopenpyxlを使って読むか、pandasを使って読むことになるので大幅な変更が必要です。
|
20
|
+
エクセルの.xlsxファイルを読みたければopenpyxlを使って読むか、pandasを使って読むことになるので大幅な変更が必要です。
|
21
|
+
|
22
|
+
pandas版を作ってみました。原型は留めていないですね。
|
23
|
+
|
24
|
+
```python
|
25
|
+
import pandas as pd
|
26
|
+
import cmath
|
27
|
+
|
28
|
+
df = pd.read_excel('complex.xlsx', header=None)
|
29
|
+
df.columns = ['mag', 'ph']
|
30
|
+
df['v'] = df.apply(lambda row: cmath.rect(row['mag'], row['ph']*cmath.pi), axis=1)
|
31
|
+
print(df)
|
32
|
+
mag = list(df['mag'])
|
33
|
+
ph = list(df['ph'])
|
34
|
+
v = list(df['v'])
|
35
|
+
print(mag)
|
36
|
+
print(ph)
|
37
|
+
print(v)
|
38
|
+
```
|
39
|
+
実行結果は以下です。
|
40
|
+
|
41
|
+
```python
|
42
|
+
>>> import pandas as pd
|
43
|
+
>>> import cmath
|
44
|
+
>>>
|
45
|
+
>>> df = pd.read_excel('complex.xlsx', header=None)
|
46
|
+
>>> df.columns = ['mag', 'ph']
|
47
|
+
>>> df['v'] = df.apply(lambda row: cmath.rect(row['mag'], row['ph']*cmath.pi), axis=1)
|
48
|
+
>>> print(df)
|
49
|
+
mag ph v
|
50
|
+
0 0.487437 0.000000 0.487437+0.000000j
|
51
|
+
1 0.653218 134.639831 -0.277814+0.591197j
|
52
|
+
2 0.193873 166.950760 -0.191558+0.029871j
|
53
|
+
3 0.202087 123.128914 -0.185739-0.079625j
|
54
|
+
4 0.583534 154.655045 -0.273125+0.515669j
|
55
|
+
5 0.128547 56.141060 0.116130+0.055120j
|
56
|
+
6 0.129435 -154.545288 -0.018354-0.128128j
|
57
|
+
7 0.321489 177.046280 -0.318097-0.046578j
|
58
|
+
8 0.029101 138.556107 -0.005103+0.028651j
|
59
|
+
9 0.192596 -175.898743 0.182933+0.060239j
|
60
|
+
>>> mag = list(df['mag'])
|
61
|
+
>>> ph = list(df['ph'])
|
62
|
+
>>> v = list(df['v'])
|
63
|
+
>>> print(mag)
|
64
|
+
[0.487436891, 0.653218389, 0.193872913999999, 0.202087417, 0.583534479, 0.128547326, 0.12943536, 0.3214885, 0.029101485, 0.192596287]
|
65
|
+
>>> print(ph)
|
66
|
+
[0.0, 134.639831499999, 166.9507599, 123.1289139, 154.6550446, 56.14105988, -154.5452881, 177.0462799, 138.5561066, -175.898742699999]
|
67
|
+
>>> print(v)
|
68
|
+
[(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)]
|
69
|
+
```
|