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

質問編集履歴

2

コードの貼付ミス

2020/05/10 15:08

投稿

JMS
JMS

スコア7

title CHANGED
File without changes
body CHANGED
@@ -107,7 +107,7 @@
107
107
  dtypes: object(3)
108
108
  memory usage: 1.7+ KB
109
109
 
110
- kakei.tail(10)#回答いただける方のため、念のため表示させます。最後の方の行は以下のとおり不要なのでこのあと参照から外します。
110
+ kakei.tail(7)#回答いただける方のため、念のため表示させます。最後の方の行は以下のとおり不要なのでこのあと参照から外します。
111
111
 
112
112
  日付コード 日付 支出
113
113
  61 2020000202 2020年2月 2,296

1

質問末尾にコードの全文(エラーメッセージ含む)を掲載しました。

2020/05/10 15:08

投稿

JMS
JMS

スコア7

title CHANGED
File without changes
body CHANGED
@@ -63,4 +63,109 @@
63
63
  61 2,296
64
64
  62 1,118
65
65
  Name: 支出, Length: 63, dtype: object
66
+ ```
67
+
68
+
69
+ **2020/5/10 追加: 
70
+ 皆様にご指導うけ、コード全文を以下に掲載いたしました。当初は以下のようにしてエラーになってしまったことについてお伺いしました。その後、カンマを削除したりしていくとまた別のエラー出て・・・ということになり先へ進めない状態になってしまっております。**
71
+
72
+ ```Python
73
+ %matplotlib inline
74
+ import numpy as np
75
+ import pandas as pd
76
+ import seaborn as sb
77
+ import matplotlib.pyplot as plt
78
+ from datetime import datetime
79
+ from sklearn.metrics import mean_absolute_error
80
+
81
+ kakei=pd.read_excel('FEH_00200565_200510154100.xlsx')#気象庁からDLしたデータ、以下にhead()を表示します。
82
+ kakei.head(10)
83
+
84
+ 統計名: 家計消費状況調査 平成29年改定(2015年1月~) 二人以上の世帯 Unnamed: 2 Unnamed: 3
85
+ 0 表番号: 1-1 NaN NaN
86
+ 1 表題: [インターネットを利用した1世帯当たり1か月間の支出] 全国・地方・都市階級別 NaN NaN
87
+ 2 実施年月: - - NaN
88
+ 3 表章項目: 00000 1世帯当たり1か月間の支出額 NaN
89
+ 4 世帯区分(平成29年改定): 0030 二人以上の世帯 NaN
90
+ 5 品目区分(平成29年改定): 0950 69 宿泊料、運賃、パック旅行費(インターネット上での決済)【円】 NaN
91
+ 6 全国・地方・都市階級(平成29年改定): 0050 関東 NaN
92
+ 7 NaN NaN NaN NaN
93
+ 8 時間軸(月次・四半期・年次) コード 時間軸(月次・四半期・年次) 値 注釈
94
+ 9 2015000101 2015年1月 1,526 NaN
95
+
96
+ kakei=kakei.drop('Unnamed: 3',axis=1)#一番右の列を不要なので削除
97
+ kakei.columns=['日付コード','日付','支出']
98
+ kakei=kakei.drop([0,1,2,3,4,5,6,7,8]).reset_index(drop=True)#index=9のところより上は利用しないので削除
99
+ kakei.info()#回答いただける方のため、念のため表示させます
100
+
101
+ <class 'pandas.core.frame.DataFrame'>
102
+ RangeIndex: 68 entries, 0 to 67
103
+ Data columns (total 3 columns):
104
+ 日付コード 67 non-null object
105
+ 日付 67 non-null object
106
+ 支出 63 non-null object
107
+ dtypes: object(3)
108
+ memory usage: 1.7+ KB
109
+
110
+ kakei.tail(10)#回答いただける方のため、念のため表示させます。最後の方の行は以下のとおり不要なのでこのあと参照から外します。
111
+
112
+ 日付コード 日付 支出
113
+ 61 2020000202 2020年2月 2,296
114
+ 62 2020000303 2020年3月 1,118
115
+ 63 NaN NaN NaN
116
+ 64 *** 数字が得られないもの NaN
117
+ 65 - 該当数字がないもの NaN
118
+ 66 ... 調査又は集計していないもの NaN
119
+ 67 … 調査又は集計していないもの NaN
120
+
121
+ kakei=kakei.iloc[0:63,:]
122
+ kakei['支出']#回答いただける方のため、念のため表示させます。
123
+
124
+ 0 1,526
125
+ 1 1,808
126
+ 2 1,712
127
+ 3 1,515
128
+ 4 1,874
129
+ ...
130
+ 58 2,499
131
+ 59 2,731
132
+ 60 2,943
133
+ 61 2,296
134
+ 62 1,118
135
+ Name: 支出, Length: 63, dtype: object
136
+
137
+ kakei['支出']=pd.to_numeric(kakei['支出'])
138
+ kakei['日付']=kakei['日付'].astype(str)
139
+ kakei['日付']=pd.to_datetime(kakei['日付'],format='%Y年%m月')
140
+ kakei['POSIX']=kakei['日付'].astype('int64').values//10**9
141
+ kakei['年']=kakei['日付'].dt.year
142
+ kakei['月']=kakei['日付'].dt.month
143
+
144
+ ---------------------------------------------------------------------------
145
+ ValueError Traceback (most recent call last)
146
+ pandas\_libs\lib.pyx in pandas._libs.lib.maybe_convert_numeric()
147
+
148
+ ValueError: Unable to parse string "1,526"
149
+
150
+ During handling of the above exception, another exception occurred:
151
+
152
+ ValueError Traceback (most recent call last)
153
+ <ipython-input-301-4852b1d66c7f> in <module>
154
+ ----> 1 kakei['支出']=pd.to_numeric(kakei['支出'])
155
+ 2 kakei['日付']=kakei['日付'].astype(str)
156
+ 3 kakei['日付']=pd.to_datetime(kakei['日付'],format='%Y年%m月')
157
+ 4 kakei['POSIX']=kakei['日付'].astype('int64').values//10**9
158
+ 5 kakei['年']=kakei['日付'].dt.year
159
+
160
+ ~\Anaconda3\lib\site-packages\pandas\core\tools\numeric.py in to_numeric(arg, errors, downcast)
161
+ 149 coerce_numeric = errors not in ("ignore", "raise")
162
+ 150 values = lib.maybe_convert_numeric(
163
+ --> 151 values, set(), coerce_numeric=coerce_numeric
164
+ 152 )
165
+ 153
166
+
167
+ pandas\_libs\lib.pyx in pandas._libs.lib.maybe_convert_numeric()
168
+
169
+ ValueError: Unable to parse string "1,526" at position 0
170
+
66
171
  ```