ヘッダー行のある、(CSV からインポートされた) リストの大きなリストがあります。ヘッダーを含む最初の 3 行は次のようになります。各行にはさらに多くの要素がありますが、読みやすくするために省略しています。
[('Div', 'Date', 'HomeTeam', 'AwayTeam', 'FTHG', 'FTAG'),
('E0', '18/08/12', 'Arsenal', 'Sunderland', '0', '0'),
('E0', '18/08/12', 'Fulham', 'Norwich', '5', '0')... ]
これは、私が Excel で持っていた/持っていた趣味のサッカー統計パッケージ用であり、Web ベースにしたかったので、Python を学んだときに実際に取り組む必要がありました。計算したい平均がいくつかあるので、各行でホームチームを照合し、選択した列の値を現在の合計に追加して、平均を算出できるようにします。非常に簡単に言えば、ホーム チームが「チェルシー」と対戦するたびに、それをランニング トータルに追加して、ホームで得点した平均ゴール数を計算したいとします。データ ファイルは非常に一貫性があるため、特定の変数は常に 4 列目か 5 列目などにあることがわかっています。
def CalcAverageHome(team, column, data_file):
total = 0
count = 0
for team in data:
if data[2] == team:
print data_file[4]
#total += data[4]
count += 1
else:
pass
average = total / 5
return
print "Here's the Average"
print CalcAverageHome("Chelsea", 4, data)
そのコードを実行すると、4 番目のリスト (最上位のリスト) が表示されます。
('E0', '18/08/12', 'QPR', 'Swansea', '0', '5'...
私は使用しようとし始めましitertools
たが、リストを反復してデバッガーとして出力するだけでも機能しませんでした (私は、私が行っているように機能することを確認したいです)
print "Let's try this with itertools"
def chain(*iterables):
for it in iterables:
print it
for element in it:
yield element
print element
chain(data)
data
CSV からのデータが読み込まれた変数、リストのリストです。
しかし、これは何も出力しません - 私はそれに関する標準ドキュメントを見てきましたが、それは何の光も当てていません。各サブリストを反復処理し、チームが一致するかどうかを確認し、一致する場合は、いくつかの要素に沿って数を処理できるようにしたいだけです。これとさまざまなソリューションを約 1 日 (3 日以上) 見てきたので、少しイライラしています。