2セットのCSVファイルをロードし、各セットの差、平均絶対誤差を除く両方でいくつかの計算を実行しようとしていますset1 - set2。
私は次のように両方のセットをロードしようとしています:
import glob
for a, b in (glob.glob("*a.csv"), glob.glob("*b.csv")):
そして、私はエラーを受け取ります:
ValueError: too many values to unpack
2セットのCSVファイルをロードし、各セットの差、平均絶対誤差を除く両方でいくつかの計算を実行しようとしていますset1 - set2。
私は次のように両方のセットをロードしようとしています:
import glob
for a, b in (glob.glob("*a.csv"), glob.glob("*b.csv")):
そして、私はエラーを受け取ります:
ValueError: too many values to unpack
ValueError指定したターゲット変数の数よりも多くのアイテムをタプルに割り当てようとしているため、 を取得しています。for ループ タプル アンパック構文は、タプル内の各リストをループし、タプル内の各値をターゲット ( aand b) に割り当てようとします。たとえば、これはうまくいきます:
for a,b in (['0a.csv', '1a.csv'], ['0b.csv', '1b.csv']):
print a,b
a各リストの最初の値をに、2 番目の値をに割り当てますb。上記のコードは以下を出力します。
0a,csv 1a.csv
0b.csv 1b.csv
したがって、ValueError少なくとも 1 つのglob.glob呼び出しの結果が 2 つの要素よりも長いリストであるため、 が得られます。
あなたがやろうとしていることに基づいて、私はあなたが使いたいと思うzip.
import glob
for a,b in zip(glob.glob("*a.csv"), glob.glob("*b.csv")):
# whatever
これにより、指定したパターンに一致するファイルのペアが取得され、それらが および に割り当てられaますb。たとえば、ファイルが0a.csvある1a.csv場合2a.csv、、、、、、および実行0b.csv中1b.csv2b.csv
for a,b in zip(glob.glob("*a.csv"), glob.glob("*b.csv")):
print a, b
結果は
0a.csv 0b.csv
1a.csv 1b.csv
2a.csv 2b.csv