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

質問編集履歴

3

文法の修正

2020/11/27 07:47

投稿

eve
eve

スコア19

title CHANGED
File without changes
body CHANGED
@@ -1,53 +1,8 @@
1
1
  現在、pandasを使って以下のcsvファイルから行列を生成しようとしています。
2
- 以下の行列イメージのような行列を生成するのを目標にしています。
2
+
3
- 現在は、下のコードでとりあえずinterfaceをindexとcolumnsに設定して
4
- 枠組みだけ生成できたので、あとは要素を入れていくのみです。
5
- 行列イメージのように、インターフェース同士、同じvlanIDであればそれを行列の要素として
6
- 挿入したいです。
7
3
  どのようにするのが適切でしょうか。
8
4
  道筋が全く想像つかず、困っています。
9
5
  numpyなどを使った方がいいのでしょうか。
10
6
  アドバイスを頂けると幸いです。
11
7
  こういう順序で処理していくといいというような考え方でも参考になります。
12
- 宜しくお願い致します。
8
+ 宜しくお願い致します。
13
-
14
- ※drop_duplicates()で削除したのでcsvは通し番号になっていないです。
15
- ※とりあえず、以下のようにcsvを出力していますが、vlanについては迷っています。
16
- (Gi0/1のvlanが2つあり、カンマで区切れないためどうするか・・・。)
17
-
18
- csvファイルは以下の通りです。
19
- ```csv
20
- ,interface,MAC,vlan
21
- 0,Gi0/1,aa:aa:aa:aa:aa:aa,100.200
22
- 3,Gi0/7,bb:bb:bb:bb:bb:bb,100
23
- 4,Gi0/5,cc:cc:cc:cc:cc:cc,200
24
- 5,Gi0/3,dd:dd:dd:dd:dd:dd,100
25
- ```
26
-
27
- 行列イメージ
28
-
29
- ||Gi0/1|Gi0/7|Gi0/5 |Gi0/3
30
- |:--|:--:|--:|
31
- |Gi0/1|0|100|200|100
32
- Gi0/7 |100 | 0 | 0 | 100
33
- Gi0/5 |200 | 0 | 0 | 0
34
- Gi0/3 | 100 | 100 |0 |0
35
-
36
-
37
- ```python
38
- (省略)
39
- ・・・
40
- idx = df.interface
41
- idx = list(idx)
42
- df = df.reindex(index = idx, columns=idx, fill_value=0)
43
-
44
- print(df)
45
-
46
- #出力
47
- ×   Gi0/1  Gi0/7  Gi0/5  Gi0/3
48
- Gi0/1 0 0 0 0
49
- Gi0/7 0 0 0 0
50
- Gi0/5 0 0 0 0
51
- Gi0/3 0 0 0 0
52
-
53
- ```

2

2020/11/27 07:47

投稿

eve
eve

スコア19

title CHANGED
File without changes
body CHANGED
@@ -33,6 +33,7 @@
33
33
  Gi0/5 |200 | 0 | 0 | 0
34
34
  Gi0/3 | 100 | 100 |0 |0
35
35
 
36
+
36
37
  ```python
37
38
  (省略)
38
39
  ・・・

1

2020/10/23 23:00

投稿

eve
eve

スコア19

title CHANGED
File without changes
body CHANGED
@@ -30,8 +30,8 @@
30
30
  |:--|:--:|--:|
31
31
  |Gi0/1|0|100|200|100
32
32
  Gi0/7 |100 | 0 | 0 | 100
33
- Gi0/5 |200 | 0 | 0 | 100
33
+ Gi0/5 |200 | 0 | 0 | 0
34
- Gi0/3 | 100 | 100 |100 |0
34
+ Gi0/3 | 100 | 100 |0 |0
35
35
 
36
36
  ```python
37
37
  (省略)