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

回答編集履歴

5

説明文を修正。

2026/04/01 12:34

投稿

melian
melian

スコア21745

answer CHANGED
@@ -1,5 +1,4 @@
1
- 予め特定の要素数(`B[0]`の最大値+1)を持つnumpy配列`C`を作成します。次にデータフレーム`B`で指定されていないインデックスの値をデータフレームAの値に入れ換えます。
1
+ 予め特定の要素数(`A[0]`の要素数+`B[0]`の要素数)を持つnumpy配列`C`を作成します。次にデータフレーム`B`で指定されていないインデックスの値をデータフレームAの値に入れ換えます。
2
- ここで、欠損の要素数とデータフレームAの行数が一致していない場合はエラーになることに留意してください。
3
2
 
4
3
  ```python
5
4
  import numpy as np

4

少し修正

2026/04/01 12:31

投稿

melian
melian

スコア21745

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  A = pd.read_csv("A.csv",header=None)
9
9
  B = pd.read_csv("B.csv",header=None)
10
10
 
11
- C = np.zeros(B[0].max()+1)
11
+ C = np.zeros(A[0].size + B[0].size)
12
12
  C[~np.isin(range(C.size), B[0])] = A[0]
13
13
 
14
14
  np.savetxt("C.csv", C, delimiter=",", fmt="%g")
@@ -25,7 +25,7 @@
25
25
  A = pd.read_csv("A.csv",header=None)
26
26
  B = pd.read_csv("B.csv",header=None)
27
27
 
28
- C = pd.DataFrame(0, index=range(B[0].max()+1), columns=[0])
28
+ C = pd.DataFrame(0, index=range(A[0].size + B[0].size), columns=[0])
29
29
  C.loc[~C.index.isin(B[0]), 0] = A[0].to_numpy()
30
30
 
31
31
  np.savetxt("C.csv", C[0], delimiter=",", fmt="%g")

3

2026/04/01 11:32

投稿

melian
melian

スコア21745

answer CHANGED
@@ -8,9 +8,8 @@
8
8
  A = pd.read_csv("A.csv",header=None)
9
9
  B = pd.read_csv("B.csv",header=None)
10
10
 
11
- num = B[0].max() + 1
12
- C = np.zeros(num)
11
+ C = np.zeros(B[0].max()+1)
13
- C[~np.isin(range(num), B[0])] = A[0]
12
+ C[~np.isin(range(C.size), B[0])] = A[0]
14
13
 
15
14
  np.savetxt("C.csv", C, delimiter=",", fmt="%g")
16
15
  ```

2

Pandasで処理を行う場合を追記

2026/04/01 11:22

投稿

melian
melian

スコア21745

answer CHANGED
@@ -14,3 +14,20 @@
14
14
 
15
15
  np.savetxt("C.csv", C, delimiter=",", fmt="%g")
16
16
  ```
17
+
18
+ **追記**
19
+
20
+ 以下は、上記と同じ処理をPandasで行う場合です。
21
+
22
+ ```python
23
+ import numpy as np
24
+ import pandas as pd
25
+
26
+ A = pd.read_csv("A.csv",header=None)
27
+ B = pd.read_csv("B.csv",header=None)
28
+
29
+ C = pd.DataFrame(0, index=range(B[0].max()+1), columns=[0])
30
+ C.loc[~C.index.isin(B[0]), 0] = A[0].to_numpy()
31
+
32
+ np.savetxt("C.csv", C[0], delimiter=",", fmt="%g")
33
+ ```

1

データフレームAの値に入れ替える箇所をnp.isin()で特定する様に変更

2026/04/01 11:18

投稿

melian
melian

スコア21745

answer CHANGED
@@ -1,5 +1,5 @@
1
- 予め特定の要素数(`B[0]`の最大値+1)を持つnumpy配列`C`を作成します。次にデータフレーム`B`のインデックス値で指定されている場所を`0`で埋めて、残り`nan`値をデータフレーム`A`の値に入れ換えます。
1
+ 予め特定の要素数(`B[0]`の最大値+1)を持つnumpy配列`C`を作成します。次にデータフレーム`B`で指定されていないインデックスの値をデータフレームAの値に入れ換えます。
2
- ここで、欠損の要素数とデータフレーム`A`の行数が一致していない場合はエラーになることに留意してください。
2
+ ここで、欠損の要素数とデータフレームAの行数が一致していない場合はエラーになることに留意してください。
3
3
 
4
4
  ```python
5
5
  import numpy as np
@@ -8,9 +8,9 @@
8
8
  A = pd.read_csv("A.csv",header=None)
9
9
  B = pd.read_csv("B.csv",header=None)
10
10
 
11
- C = np.full(B[0].max()+1, np.nan)
11
+ num = B[0].max() + 1
12
- C[B[0]] = 0
12
+ C = np.zeros(num)
13
- C[np.isnan(C)] = A[0]
13
+ C[~np.isin(range(num), B[0])] = A[0]
14
14
 
15
- np.savetxt("C.csv", C, delimiter=",", fmt="%d")
15
+ np.savetxt("C.csv", C, delimiter=",", fmt="%g")
16
16
  ```