1. ホーム
  2. python

[解決済み] SyntaxError: パース中に予期しない EOF が発生した。

2022-03-01 22:32:51

質問

この部分を実行するとエラーが発生します。既存の解決策をいくつか試してみましたが、どれも役に立ちませんでした。

elec_and_weather = pd.read_csv(r'C:\HOUR.csv', parse_dates=True,index_col=0)
# Add historic DEMAND to each X vector
 for i in range(0,24):
    elec_and_weather[i] = np.zeros(len(elec_and_weather['DEMAND']))
    elec_and_weather[i][elec_and_weather.index.hour==i] = 1
# Set number of hours prediction is in advance
n_hours_advance = 24

# Set number of historic hours used
n_hours_window = 24

for k in range(n_hours_advance,n_hours_advance+n_hours_window):
    elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'

いつもこのエラーが出ます。

for i in range(0,24):
File "<ipython-input-29-db3022a769d1>", line 1
for i in range(0,24):
                     ^
SyntaxError: unexpected EOF while parsing

File "<ipython-input-25-df0a44131c36>", line 1
    for k in range(n_hours_advance,n_hours_advance+n_hours_window):
                                                                   ^
SyntaxError: unexpected EOF while parsing

解決方法は?

その SyntaxError: unexpected EOF while parsing は、すべてのコードブロックが完成する前に、ソースコードの末尾に到達したことを意味します。コードブロックは、次のようなステートメントで始まります。 for i in range(100): で、その後に少なくとも1行、その中にあるべきコードが含まれていることが必要です。

ipythonのコンソールでプログラムを一行ずつ実行していたようですね。これは、以下のような単一のステートメントに対して機能します。 a = 3 が、forループのようなコードブロックには使えません。次の例をご覧ください。

In [1]: for i in range(100):
  File "<ipython-input-1-ece1e5c2587f>", line 1
    for i in range(100):
                        ^
SyntaxError: unexpected EOF while parsing

このエラーを回避するには、コードブロック全体を1つの入力として入力する必要があります。

In [2]: for i in range(5):
   ...:     print(i, end=', ')
0, 1, 2, 3, 4,