質問編集履歴
1
質問内容の説明文を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
##
|
1
|
+
##実現したい事
|
2
2
|
|
3
|
-
|
3
|
+
1,2列目でNaNになっているデータを同じ行の3,4列目のデータを入れて補正する処理をしたいです
|
4
4
|
|
5
5
|
エラーが出てしまい、次に進むことができません。
|
6
6
|
|
@@ -8,79 +8,75 @@
|
|
8
8
|
|
9
9
|
ファイル名: data.csv
|
10
10
|
|
11
|
+
|
12
|
+
|
11
|
-
|
13
|
+
6行4列
|
14
|
+
|
15
|
+
列1 列2 列3 列4
|
16
|
+
|
17
|
+
2021 NaN 2021 11
|
18
|
+
|
19
|
+
NaN 6 2021 6
|
20
|
+
|
21
|
+
2021 NaN 2021 4
|
22
|
+
|
23
|
+
2021 NaN 2021 8
|
24
|
+
|
25
|
+
2021 9 2021 9
|
26
|
+
|
27
|
+
NaN NaN 2021 11
|
12
28
|
|
13
29
|
|
14
30
|
|
15
|
-
年度 参加月 年度補完 参加月補完
|
16
|
-
|
17
|
-
2021 3 2021 3
|
18
|
-
|
19
|
-
2020 10
|
20
|
-
|
21
|
-
2020 3 2020 3
|
22
|
-
|
23
|
-
2021 2021 4
|
24
|
-
|
25
|
-
9 2020 9
|
26
|
-
|
27
|
-
2021 10 2021 10
|
28
|
-
|
29
|
-
2021 3 2021 3
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
##
|
31
|
+
##発生している問題・エラーメッセージ
|
34
32
|
|
35
33
|
エラーメッセージは次の通りです
|
36
34
|
|
37
|
-
|
35
|
+
下のコード5行目のcsvを読み込む時点でデータ型がなぜかobject型になり、そこからNaNの検索や補正ができない状態になります。
|
38
36
|
|
39
37
|
|
40
|
-
|
41
|
-
---------------------------------------------------------------------------
|
42
38
|
|
43
39
|
AttributeError Traceback (most recent call last)
|
44
40
|
|
45
41
|
<ipython-input-4-c80cdb7e5e7a> in <module>
|
46
42
|
|
47
|
-
|
43
|
+
4
|
48
44
|
|
49
|
-
|
45
|
+
5 data = pd.read_csv('data.csv',dtype=str,encoding="cp932")
|
50
46
|
|
51
|
-
|
47
|
+
----> 6 data = data.iloc[i,0].astype('str')
|
52
48
|
|
53
|
-
|
49
|
+
7 for i in range(1,len(data)):
|
54
50
|
|
55
|
-
|
51
|
+
8 if np.isnan(data.iloc[i,0]):
|
56
52
|
|
57
53
|
|
58
54
|
|
59
|
-
|
55
|
+
AttributeError: 'str' object has no attribute 'astype'
|
60
56
|
|
61
57
|
|
62
58
|
|
63
|
-
##
|
59
|
+
##コード・試したこと
|
64
60
|
|
65
61
|
コードは次の通りです
|
66
62
|
|
67
|
-
|
63
|
+
1:import os
|
68
64
|
|
69
|
-
|
65
|
+
2:import pandas as pd
|
70
66
|
|
71
|
-
|
67
|
+
3:import numpy as np
|
72
68
|
|
73
|
-
|
69
|
+
4:
|
74
70
|
|
75
|
-
|
71
|
+
5:data = pd.read_csv('data.csv',dtype=str,encoding="cp932")
|
76
72
|
|
77
|
-
|
73
|
+
6:data = data.iloc[i,0].astype('str')
|
78
74
|
|
79
|
-
|
75
|
+
7:for i in range(1,len(data)):
|
80
76
|
|
81
|
-
|
77
|
+
8: if np.isnan(data.iloc[i,0]):
|
82
78
|
|
83
|
-
|
79
|
+
9: print(f'年度の{i}行目補正しました')
|
84
80
|
|
85
81
|
10: data.iloc[i,0] = data.iloc[i,3]
|
86
82
|
|
@@ -96,12 +92,12 @@
|
|
96
92
|
|
97
93
|
|
98
94
|
|
99
|
-
##
|
95
|
+
##補足情報(FW/ツールのバージョンなど)
|
100
96
|
|
101
97
|
使用ツール
|
102
98
|
|
103
|
-
|
99
|
+
python3(jupyter.lab)
|
104
100
|
|
105
|
-
|
101
|
+
VScode
|
106
102
|
|
107
103
|
です
|