私はcsvファイルを読んでいます。私はキーが株式ティッカーであり、その値がそのティッカーの終値のリストであるリストを作成しなければなりません。私は各株の最高値と最低価格でテロップを並べ替えるのに問題があります。リストの辞書を作成するPython 3
意図した出力は次のようになります。
>GOOG: 180.38 difference (672.93-492.55)
>LNKD: 100.82 difference (270.76-169.94)
>AAPL: 36.74 difference (133.0-96.26)
>FB: 25.76 difference (98.39-72.63)
>MSFT: 9.32 difference (49.61-40.29)
マイサンプルCSVテーブルファイル:意図した動作を生産されていない
>Ticker Date Open High Low Close Volume
>GOOG 25-Sep-15 629.77 629.77 611 611.97 2174009
>GOOG 24-Sep-15 616.64 627.32 612.4 625.8 2240098
私のコード。おかげで、フィードバックのため@zyxue
file_data = open('../python_data/stock_prices.csv').readlines()[1:]
stock_dict = {}
def price_diff(key):
change_price = max(stock_dict[key]) - min(stock_dict[key])
return (change_price)
for line in file_data:
line = line.split(',')
ticker = line[0]
if ticker not in stock_dict:
stock_dict[ticker] = []
stock_dict[ticker].append(float(line[5]))
sorted_keys = sorted(stock_dict, key=price_diff, reverse=True)
#print(sorted_keys)
for key in stock_dict:
print(key, round(max(stock_dict[key]) - min(stock_dict[key]),2))
パンダ、http://pandas.pydata.org/をご存知ですか?エクササイズとしてやっていない限り、自分でcsvをパースするのではなく、パンダを使うことを検討してください。 – zyxue
こんにちは。私は運動としてやっています。 –
'sorted(stock_dict)'ではなく、 'sorted(stock_dict.items())'の代わりに辞書をソートする必要はありません。 – zyxue