2017-05-12 11 views
0

私は2つのCSVファイルをインポートしています。 1つのCSVの値があります。欠けているので、別のCSVと組み合わせる必要があります。最初のリストは、このstats =あるリストから別のリストに値を追加する

[ ['0', 'Dallas', 'Keuchel,', 'HOU', '8', '8', '6', '0', '1.000', '1', '0', '7', '0', '58.2', '37', '12', '11', '6', '14', '50', '1.69'], 

    ['1', 'Ervin', 'Santana,', 'MIN', '7', '7', '5', '1', '.833', '1', '1', '6', '0', '47.0', '21', '9', '9', '6', '16', '37', '1.72'], 

    ['2', 'Jason', 'Vargas,', 'KC', '7', '7', '5', '1', '.833', '0', '0', '6', '0', '44.2', '33', '6', '5', '1', '8', '39', '1.01']] 

ように見える

このsalaries =

[['19249-12477', 'P', 'Chris', 'Chris Sale', 'Sale', '54.71', '7', '11800', '[email protected]', 'BOS', 'TAM', '', '', '', ''], 

['19249-5481', 'P', 'Max', 'Max Scherzer', 'Scherzer', '48.29', '7', '11700', '[email protected]', 'WAS', 'PHI', '', '', '', ''], 

['19249-6311', 'P', 'Madison', 'Madison Bumgarner', 'Bumgarner', '38.50', '4', '11000', '[email protected]', 'SFG', 'CIN', '', 'Shoulder', '', '']] 

両方リストのような第二の外観は、異なる長さです。 salaries[i][1]salaries[i][7]をリスト2から引き出し、リスト1と組み合わせる必要があります。

ここにキャッチがあります。私は両方のリストを繰り返して、名前が一致するかどうかを確認しなければなりません。間違った値を間違ったプレーヤーと組み合わせることになります。ここで

は私のコードは、これまで

for name1, name2 in zip(salaries, stats): 
    if name1[2] == name2[1] and name1[4] == name2[2]: 
     stats.append(salaries[1][1]) 



for name1, name2 in zip(salaries, stats): 
    if name1[2] == name2[1] and name1[4] == name2[2]: 
     stats.append(salaries[1][7]) 

あるしかし、私はこれを実行すると、それは一度だけ私のヘッダー値['Position']を与える代わりに、リスト全体を反復処理し、値を追加する追加します。

これを実行すると、値もstatsに追加する必要があります。追加する必要のある特定のインデックスを付ける必要がありますか?

+0

オブジェクトを再フォーマットすることができます。例えば。あなたは「両方」と言います。しかし、6つのリストがあり、そのうち4つは割り当てられていません。 – Kanak

+0

どちらもリスト@Tnerual – tin

+0

のリストです。あなたのリストをそうしてください。単純に入力をコピーすることができれば、回答を得る機会を最大限に活用できます。昏睡状態がありません。 – Kanak

答えて

2

単純にリストzipを入力することはできません。エントリは位置によって対応していません。代わりに、どちらのリストも、sortの名前で読んでください(sorting tutorialを参照)。

2人のファイルに全く同じプレーヤーが含まれていますか?もしそうなら、この時点でリストをzipにすることができます。そうでない場合は、zipを完全に忘れてください。代わりに、statsを繰り返します。各プレイヤーの名前はsalariesです。 2つのフィールドをつかみ、その行にstatsを挿入します。あなたが注文を心配している場合は、はい、それらを置く場所を指定する必要があります。insertではなくappendを使用してください。

これは簡単な方法です。あなたが実行時間(例えば、プロスポーツの歴史の中のすべての選手について)を心配しているなら、アップデートを行うより速い方法があります。わずか1500人のプレイヤーにとって、それは心配しないでください:両方のリストを読み、N-squaredアップデートを行い、新しいファイルを書き出します。

関連する問題