[解決済み】TypeError: cannot unpack non-iterable int objec
2022-01-21 18:29:44
質問
次のようなコードを実行した後、このエラーを解決するにはどうすればよいのでしょうか。私は以下の関数を使用して、その上に実行ウィンドウのループを実装していますが、最終的に以下のエラーが表示されます。forループが動作し、ある点でハングアップします。
def get_grps(s, thresh=-1, Nmin=3):
"""
Nmin : int > 0
Min number of consecutive values below threshold.
"""
m = np.logical_and.reduce([s.shift(-i).le(thresh) for i in range(Nmin)])
if Nmin > 1:
m = pd.Series(m, index=s.index).replace({False: np.NaN}).ffill(limit=Nmin - 1).fillna(False)
else:
m = pd.Series(m, index=s.index)
# Form consecutive groups
gps = m.ne(m.shift(1)).cumsum().where(m)
# Return None if no groups, else the aggregations
if gps.isnull().all():
return 0
else:
agg = s.groupby(gps).agg([list, sum, 'size']).reset_index(drop=True)
# agg2 = s2.groupby(gps).agg([list, sum, 'size']).reset_index(drop=True)
return agg, gps
data_spi = [-0.32361498 -0.5229471 0.15702732 0.28753752 -0.01069884 -0.8163699
-1.3169327 0.4413181 0.75815576 1.3858147 0.49990863-0.06357133
-0.78432 -0.95337325 -1.663739 0.18965477 0.81183237 0.8360347
0.99537593 -0.12197364 -0.31432647 -2.0865853 0.2084263 0.13332903
-0.05270813 -1.0090573 -1.6578217 -1.2969246 -0.70916456 0.70059913
-1.2127264 -0.659762 -1.1612778 -2.1216285 -0.8054617 -0.6293912
-2.2103117 -1.9373081 -2.530625 -2.4089663 -1.950846 -1.6129876]
lon = data_spi.lon
lat = data_spi.lat
print(len(data_spi))
n=6
for x in range(len(lat)):
for y in range(len(lon)):
if data_spi[0, x, y] != 0:
for i in range(len(data_spi)-70):
ts = data_spi[i:i+10, x, y].fillna(1)
print(ts)
# print(np.array(ts))
agg, gps = get_grps(pd.Series(ts), thresh=-1, Nmin=3)
duration = np.nanmean(agg['sum'])
frequency = len(agg['sum'])
severity = np.abs(np.mean(agg['sum']))
intensity = np.mean(np.abs(agg['sum'] / agg['size']))
print(f'intensity {intensity}')
このようなエラーが発生します。
Traceback (most recent call last):
File "/Users/mada0007/PycharmProjects/Research_ass /FREQ_MEAN_INT_DUR_CORR.py", line 80, in <module>
agg, gps = get_grps(pd.Series(ts), thresh=-1, Nmin=3)
typeError: cannot unpack non-iterable int object
このエラーを解決するにはどうすればよいですか?
解決方法を教えてください。
を置き換えるだけです。
return 0
で
return 0, 0
あるいは、0を返す代わりにエラーを発生させる。
を設定した場合
if
が True の場合のみ
0
. そして、後で
agg, gps = get_grps(...)
関数の結果をアンパックするように python に指示します。そして、pythonは2長のイテラブルを期待して、それを解凍しようとしますが、'cannot unpack non-iterable int object'... と言うように、それは...
そこで、簡単な回避策として、タプル(0, 0)を返すように
return 0, 0
しかし、オブジェクトを返すべきところを整数を返してしまうので、かなりまずいです。
duration = np.nanmean(agg['sum'])
(ただし
agg
は0です)。
この場合、2回目のアンパックで処理するのが、よりクリーンな解決策となるでしょう。
def get_grps(s, thresh=-1, Nmin=3):
# ...
if gps.isnull().all():
return None
else:
# ...
return agg, gps
for i in range(len(data_spi)-70):
ts = data_spi[i:i+10, x, y].fillna(1)
result = get_grps(pd.Series(ts), thresh=-1, Nmin=3)
if result is None:
break
agg, gps = result
duration = np.nanmean(agg['sum'])
frequency = len(agg['sum'])
関連
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonショートビデオクローラーチュートリアル
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み】TypeError: 非反復可能なNoneTypeオブジェクトをアンパックできない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python カメの描画コマンドとその例
-
PythonはWordの読み書きの変更操作を実装している
-
Python百行で韓服サークルの画像クロールを実現する
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】NameError: 名前 'self' が定義されていません。