質問編集履歴

3

文法の修正

2020/11/27 07:47

投稿

eve
eve

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,6 @@
1
1
  現在、pandasを使って以下のcsvファイルから行列を生成しようとしています。
2
2
 
3
- 以下の行列イメージのような行列を生成するのを目標にしています。
4
3
 
5
- 現在は、下のコードでとりあえずinterfaceをindexとcolumnsに設定して
6
-
7
- 枠組みだけ生成できたので、あとは要素を入れていくのみです。
8
-
9
- 行列イメージのように、インターフェース同士、同じvlanIDであればそれを行列の要素として
10
-
11
- 挿入したいです。
12
4
 
13
5
  どのようにするのが適切でしょうか。
14
6
 
@@ -21,85 +13,3 @@
21
13
  こういう順序で処理していくといいというような考え方でも参考になります。
22
14
 
23
15
  宜しくお願い致します。
24
-
25
-
26
-
27
- ※drop_duplicates()で削除したのでcsvは通し番号になっていないです。
28
-
29
- ※とりあえず、以下のようにcsvを出力していますが、vlanについては迷っています。
30
-
31
- (Gi0/1のvlanが2つあり、カンマで区切れないためどうするか・・・。)
32
-
33
-
34
-
35
- csvファイルは以下の通りです。
36
-
37
- ```csv
38
-
39
- ,interface,MAC,vlan
40
-
41
- 0,Gi0/1,aa:aa:aa:aa:aa:aa,100.200
42
-
43
- 3,Gi0/7,bb:bb:bb:bb:bb:bb,100
44
-
45
- 4,Gi0/5,cc:cc:cc:cc:cc:cc,200
46
-
47
- 5,Gi0/3,dd:dd:dd:dd:dd:dd,100
48
-
49
- ```
50
-
51
-
52
-
53
- 行列イメージ
54
-
55
-
56
-
57
- ||Gi0/1|Gi0/7|Gi0/5 |Gi0/3
58
-
59
- |:--|:--:|--:|
60
-
61
- |Gi0/1|0|100|200|100
62
-
63
- Gi0/7 |100 | 0 | 0 | 100
64
-
65
- Gi0/5 |200 | 0 | 0 | 0
66
-
67
- Gi0/3 | 100 | 100 |0 |0
68
-
69
-
70
-
71
-
72
-
73
- ```python
74
-
75
- (省略)
76
-
77
- ・・・
78
-
79
- idx = df.interface
80
-
81
- idx = list(idx)
82
-
83
- df = df.reindex(index = idx, columns=idx, fill_value=0)
84
-
85
-
86
-
87
- print(df)
88
-
89
-
90
-
91
- #出力
92
-
93
- ×   Gi0/1  Gi0/7  Gi0/5  Gi0/3
94
-
95
- Gi0/1 0 0 0 0
96
-
97
- Gi0/7 0 0 0 0
98
-
99
- Gi0/5 0 0 0 0
100
-
101
- Gi0/3 0 0 0 0
102
-
103
-
104
-
105
- ```

2

2020/11/27 07:47

投稿

eve
eve

スコア19

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,8 @@
68
68
 
69
69
 
70
70
 
71
+
72
+
71
73
  ```python
72
74
 
73
75
  (省略)

1

2020/10/23 23:00

投稿

eve
eve

スコア19

test CHANGED
File without changes
test CHANGED
@@ -62,9 +62,9 @@
62
62
 
63
63
  Gi0/7 |100 | 0 | 0 | 100
64
64
 
65
- Gi0/5 |200 | 0 | 0 | 100
65
+ Gi0/5 |200 | 0 | 0 | 0
66
66
 
67
- Gi0/3 | 100 | 100 |100 |0
67
+ Gi0/3 | 100 | 100 |0 |0
68
68
 
69
69
 
70
70