回答編集履歴

1

質問変更への対応

2021/07/17 14:33

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -29,3 +29,67 @@
29
29
  のところで、iが未定義でエラーになるでしょう。
30
30
 
31
31
  それをどう修正しようと思いますか。
32
+
33
+
34
+
35
+ 回答がありませんが、要するにこの行は不要だと暗に言ってみただけです。
36
+
37
+
38
+
39
+ - 下のコード5行目のcsvを読み込む時点でデータ型がなぜかobject型になり、
40
+
41
+
42
+
43
+ データに含まれる6と9が全角だからです。
44
+
45
+
46
+
47
+ 質問にあるループ処理を悩むよりは、[pandasで欠損値NaNを除外(削除)・置換(穴埋め)・抽出](https://note.nkmk.me/python-pandas-nan-dropna-fillna/)のような方法を使った方がわかりやすいでしょう。
48
+
49
+
50
+
51
+ ```python
52
+
53
+ >>> print(data)
54
+
55
+ 列1 列2 列3 列4
56
+
57
+ 0 2021.0 NaN 2021 11
58
+
59
+ 1 NaN 6.0 2021 6
60
+
61
+ 2 2021.0 NaN 2021 4
62
+
63
+ 3 2021.0 NaN 2021 8
64
+
65
+ 4 2021.0 9.0 2021 9
66
+
67
+ 5 NaN NaN 2021 11
68
+
69
+ >>>
70
+
71
+ >>> data['列1'] = data['列1'].fillna(data['列3']).astype(int)
72
+
73
+ >>> data['列2'] = data['列2'].fillna(data['列4']).astype(int)
74
+
75
+ >>>
76
+
77
+ >>> print(data)
78
+
79
+ 列1 列2 列3 列4
80
+
81
+ 0 2021 11 2021 11
82
+
83
+ 1 2021 6 2021 6
84
+
85
+ 2 2021 4 2021 4
86
+
87
+ 3 2021 8 2021 8
88
+
89
+ 4 2021 9 2021 9
90
+
91
+ 5 2021 11 2021 11
92
+
93
+
94
+
95
+ ```