質問編集履歴

1

質問内容の説明文を修正しました。

2021/07/17 13:55

投稿

Kaika
Kaika

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
- ### 前提・実現したいこと
1
+ ##実現したい
2
2
 
3
- 列目でNaNになっているデータを同じ行の列目のデータを入れて補正する処理をしたいです
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
- 7行4列
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
- 4行目のcsvを読み込む時点でデータ型がなぜかobject型になり、そこからNaNの検索ができない状態になります。
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
- 4
43
+ 4
48
44
 
49
- 5 data = pd.read_csv('C:/Users/kaika/OneDrive/デスクトップ/-Git/01TestDataCheck/data.csv',dtype=str,encoding="cp932")
45
+ 5 data = pd.read_csv('data.csv',dtype=str,encoding="cp932")
50
46
 
51
- **----> 6 data = data.iloc[i,0].astype('str')**
47
+ ----> 6 data = data.iloc[i,0].astype('str')
52
48
 
53
- 7 for i in range(1,len(data)):
49
+ 7 for i in range(1,len(data)):
54
50
 
55
- 8 if np.isnan(data.iloc[i,0]):
51
+ 8 if np.isnan(data.iloc[i,0]):
56
52
 
57
53
 
58
54
 
59
- **AttributeError: 'str' object has no attribute 'astype'**
55
+ AttributeError: 'str' object has no attribute 'astype'
60
56
 
61
57
 
62
58
 
63
- ### 試したこと
59
+ ##コード・試したこと
64
60
 
65
61
  コードは次の通りです
66
62
 
67
- 1:import os
63
+ 1:import os
68
64
 
69
- 2:import pandas as pd
65
+ 2:import pandas as pd
70
66
 
71
- 3:import numpy as np
67
+ 3:import numpy as np
72
68
 
73
- 4:
69
+ 4:
74
70
 
75
- 5:data = pd.read_csv('data.csv',dtype=str,encoding="cp932")
71
+ 5:data = pd.read_csv('data.csv',dtype=str,encoding="cp932")
76
72
 
77
- 6:data = data.iloc[i,0].astype('str')
73
+ 6:data = data.iloc[i,0].astype('str')
78
74
 
79
- 7:for i in range(1,len(data)):
75
+ 7:for i in range(1,len(data)):
80
76
 
81
- 8: if np.isnan(data.iloc[i,0]):
77
+ 8: if np.isnan(data.iloc[i,0]):
82
78
 
83
- 9: print(f'年度の{i}行目補正しました')
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
- ### 補足情報(FW/ツールのバージョンなど)
95
+ ##補足情報(FW/ツールのバージョンなど)
100
96
 
101
97
  使用ツール
102
98
 
103
-  python3(jupyter.lab)
99
+ python3(jupyter.lab)
104
100
 
105
-  VScode
101
+ VScode
106
102
 
107
103
  です