2017-12-05 5 views
-1

私はこのコードに使用しているデータのスプレッドシートを持っています。それは従業員とその基本給与とポジションの長いリストを持っています。私は最高の支払人を見つけてその情報を印刷しようとしています。私にそれを与える代わりに、それは私にリストの最後の人を与えます。それはまた私に給料の最後の数字を与えるだけです。姓、名、ベースペイ、大学やオフィス、ポジション,,, アーロン、ジュリア・J、97783、クラリオン:代わりに、ここで印刷「209318」それだけでプリント「8」最高の有給の従業員を見つけるためのデータマイニング

def main(): 
    my_file = open('IndianaSalaries.csv', 'r') 

    list_of_lines = my_file.read().splitlines() 

    for i in range(1, len(list_of_lines)): 
    one_line = list_of_lines[i] 
    line_items = one_line.split(',') 
    base_pay = line_items[2] 
    highest = max(base_pay) 

    first_name = line_items[1] 
    last_name = line_items[0] 
    university = line_items[3] 
    position = line_items[4] 

    print("The highest paid person is", first_name, last_name, "with the position of",position,"at",university,"making a base salary of $",highest) 

main() 

のデータ例であります、Chair、、 Aaron、Paul Neal、23961、Shippensburg、Custodial Worker 1 ,,, Aaron、William F、11199、クラリオン、インストラクター、 Abbondanza、Lawrence A. Jr、111099、Edinboro、インストラクター、PTアブボット、クリスチャン・カイル、44795、クラリオン、インストラクター、 アボット、アブボット、アブボット、アブボット、アブボット、ウェストチェスター、議長、 Abbott、Barbara E.、31687、Edinboro、財政補助部、 アボット、メアリーV、35071、エディンボロ、会計As sistant ,,,

+0

'my_file.read()にある行(または従業員)を印刷は、分割線()' - それをしません。代わりに 'for line in one_line:[your loop]'を実行します。Pythonはリストと同じファイルを繰り返し処理できます。 – dawg

+0

:サンプルデータを追加してください。人々があなたのためにそれを作り出さないようにしてください。 – dawg

+0

その学校の割り当てと 'my_file.read()。splitlines()'を使用する必要があります – savannah

答えて

0

基本的にデータを繰り返し処理しています。あなたは実際に最高の鮭を持っている列を見つけていません。

これを解決する方法はたくさんあります。あなたができることは、最大給与(例えば、max_payと呼ぶ)を格納する変数と、最大給与(row_max)を持つ従業員(または行)を格納する変数の2つです。あなたは何ができるか

は次のとおりです。

  1. は、ループのためにあなたに

  2. 、非常に少ない数であるようにmax_payを初期化して0を言う、

    max_pay行の基本給よりも低くなっているかどうかを確認。はいの場合は、より高い賃金を持つ行(または従業員)を見つけて、その行番号をrow_maxに格納します。そうでなければ、次の反復に移ります。 。ループ後

  3. 、単にその行番号row_max

+0

行を確認するには?私はちょっと混乱して、どうすればそのことになるのですか – savannah

+0

これは何か? base_pay = line_items [2] 最高= MAX(base_pay) max_pay = 0 one_line = list_of_lines [I] line_items = one_line.split( ''): '範囲でI(1、LEN(list_of_lines))のために if max_pay savannah