teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

コードの修正

2018/11/20 06:34

投稿

shougi
shougi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  # 計算
19
19
  for i in range(0,2):
20
- A1 = dL[i] + Ds2.loc[:, Ds2.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values + Ds1.loc[:, Ds1.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values*
20
+ A1 = dL[i] + Ds2.loc[:, Ds2.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values + Ds1.loc[:, Ds1.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values
21
21
  B = np.r_[B, A1.reshape(1, -1)]
22
22
  B.T
23
23
  ```

3

無駄削除

2018/11/20 06:34

投稿

shougi
shougi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -34,7 +34,7 @@
34
34
  ---> 18 B = np.r_[B, A1.reshape(1, -1)]
35
35
  19 B.T
36
36
 
37
- C:\Users\Ohgak\Anaconda3\lib\site-packages\numpy\lib\index_tricks.py in __getitem__(self, key)
37
+ C:\lib\site-packages\numpy\lib\index_tricks.py in __getitem__(self, key)
38
38
  336 objs[k] = objs[k].astype(final_dtype)
39
39
  337
40
40
  --> 338 res = _nx.concatenate(tuple(objs), axis=self.axis)

2

エラーなどの足りない情報の追加

2018/11/20 02:32

投稿

shougi
shougi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,9 @@
7
7
  # データ読み込み
8
8
  Ds1 = pd.read_excel('sample.xlsx', '--')
9
9
  Ds2 = pd.read_excel('sample.xlsx', '-')
10
+ # データ名(実際はすでにエクセルに下記のデータ名が入力されている)
11
+ L5 = ['W-A0', 'W-B0', 'W-F0', 'W-C1', 'W-E1', 'W-A2', 'W-B2', 'W-D2', 'W-F2', 'W-C3', 'W-E3',
12
+ 'W-A4', 'W-B4', 'W-F4']
10
13
 
11
14
  # リスト
12
15
  dL = list(range(100, 2100, 200))
@@ -18,8 +21,31 @@
18
21
  B = np.r_[B, A1.reshape(1, -1)]
19
22
  B.T
20
23
  ```
24
+ Ds1,2ともにshapeは(164,14)の数値列,数値はランダムです.
25
+ また両方ともcolumnsは上記コード内のリストL5です.
26
+
27
+ 発生エラー
28
+ ```
29
+ ---------------------------------------------------------------------------
30
+ ValueError Traceback (most recent call last)
31
+ <ipython-input-28-2163de09022c> in <module>()
32
+ 16 for i in range(0,2):
33
+ 17 A1 = dL[i] + Ds2.loc[:, Ds2.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values + Ds1.loc[:, Ds1.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values
34
+ ---> 18 B = np.r_[B, A1.reshape(1, -1)]
35
+ 19 B.T
36
+
37
+ C:\Users\Ohgak\Anaconda3\lib\site-packages\numpy\lib\index_tricks.py in __getitem__(self, key)
38
+ 336 objs[k] = objs[k].astype(final_dtype)
39
+ 337
40
+ --> 338 res = _nx.concatenate(tuple(objs), axis=self.axis)
41
+ 339 return self._retval(res)
42
+ 340
43
+
44
+ ValueError: all the input array dimensions except for the concatenation axis must match exactly
45
+ ```
21
46
  for文のA1までは動くのですが,Bのところでエラーが発生します.改善できないでしょうか.
22
47
 
48
+
23
49
  以下のコードではうまくいくのですが,上記ではなぜできないのか原因がわかりません.
24
50
  ```python
25
51
  import pandas as pd

1

コードの変更

2018/11/20 02:27

投稿

shougi
shougi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,26 +1,42 @@
1
- for文で複数の配列とリストの繰り返し計算したいのですが,うまくいかないです.
2
- やりたいことは,リストと複数の配列を計算して,計算結果の配列を追加していきたいです.
1
+ **やりたいことは,リストと複数の配列を計算して,計算結果の配列を空の配列に追加していきたいです.**
3
2
 
4
3
  ```python
5
4
  import pandas as pd
6
5
  import numpy as np
7
6
 
8
- # データ
7
+ # データ読み込み
9
- Ds1 = pd.DataFrame(np.random.randn(10, 3))
8
+ Ds1 = pd.read_excel('sample.xlsx', '--')
10
- Ds2 = pd.DataFrame(np.arange(30).reshape(10, 2))
9
+ Ds2 = pd.read_excel('sample.xlsx', '-')
11
10
 
11
+ # リスト
12
12
  dL = list(range(100, 2100, 200))
13
- dL1 = [100, 300, 450, 600, 750, 900]
14
- B = np.zeros((0, 10))
13
+ B = np.zeros((0, Ds1.values.shape[0]))
15
14
 
16
15
  # 計算
17
16
  for i in range(0,2):
18
- A1 = dL[i] + Ds2.loc[:,i].values/2 * np.cos( Ds2.loc[:,i].values*np.pi/180)
17
+ A1 = dL[i] + Ds2.loc[:, Ds2.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values + Ds1.loc[:, Ds1.columns.str.contains(r'(?=.*W)(?=.*%s)' % i)].values*
19
18
  B = np.r_[B, A1.reshape(1, -1)]
20
-
21
19
  B.T
22
20
  ```
21
+ for文のA1までは動くのですが,Bのところでエラーが発生します.改善できないでしょうか.
23
22
 
24
- Ds1とDs2配列サイズが異なることが原因ですがんとからなでしょうか.また,他方法で簡単にできる方法あれば教えていただければ幸いです
23
+ 以下のコードはうまくいくのですが,上記ではぜできないのか原因わかりません
24
+ ```python
25
+ import pandas as pd
26
+ import numpy as np
25
27
 
28
+ # データ
29
+ Ds1 = pd.DataFrame(np.random.randn(10, 2), columns=['L-0','L-1'])
30
+ Ds2 = pd.DataFrame(np.arange(30).reshape(10, 3), columns=['L-0','L-1','L-2'])
31
+
32
+ dL = list(range(100, 2100, 200))
33
+ dL1 = [100, 300, 450, 600, 750, 900]
34
+ B = np.zeros((0, Ds1.values.shape[0]))
35
+
36
+ # 計算
26
- 以上,よろしくお願いいたします.
37
+ for i in range(0,2):
38
+ A1 = dL[i] + Ds2.loc[:, Ds2.columns.str.contains(r'(?=.*%s)' % i)].values + Ds1.loc[:, Ds1.columns.str.contains(r'(?=.*%s)' % i)].values
39
+ B = np.r_[B, A1.reshape(1, -1)]
40
+
41
+ B.T
42
+ ```