2016-04-11 22 views
-2

こんにちは私は、リスト内の共通の用語について反復し、ファイルに書き込むことについて、リストはこのように見えます、私は別のpdfsのためにそれを別々に保存することができました。異なる株式のcsvファイルとは別に?いずれも、再び私を助けるしかしそこに代わりAAPLの他の銘柄もあり、このリストは、私は、プロット、PDF内の各株式の結果を記述しようとしています、非常に長いものであるあなたにPythonリスト、反復

('AAPL', Timestamp('2012-10-22 16:00:00'), 669.78999999999996, 669.68011449859193), 
('AAPL', Timestamp('2012-10-23 16:00:00'), 669.78999999999996, 669.68021661402906), 
('AAPL', Timestamp('2012-10-24 16:00:00'), 669.78999999999996, 669.67977965494936), 
('AAPL', Timestamp('2012-10-25 16:00:00'), 669.78999999999996, 669.67977965494936), 
('AAPL', Timestamp('2012-10-26 16:00:00'), 669.78999999999996, 669.67977965494936), 
('AAPL', Timestamp('2012-10-31 16:00:00'), 669.78999999999996, 669.67977965494936), 

に感謝することができますファイル。このコードは単一の株式のために働きます、私はそれを私のリストのすべての株式のために働かせますか?

prediction = np.asarray(prediction_series) 
    stocks = set(prediction[:,0]) 
    for stocki in stocks: 
    p_stock = prediction[np.where(prediction[:,0] == stocki)] 
    print p_stock.shape[0] 
    predictionValues= p_stock[:,2:4] 
    predY=p_stock[:,2] 
    actualY=p_stock[:,3] 
    #predictionStock=prediction[:,1] 
    dates=p_stock[:,1:2] 


    writer = csv.writer(open('Predicted and Actual Y %s.csv' % stock, 'wb'), delimiter=',') 
    for i in range(0,predY.shape[0]): 

      row_to_enter = [dates[i],predY[i], actualY[i]] 
      writer.writerow(row_to_enter) 
    plt.clf() 
    plt.plot(dates, predictionValues) 
    plt.legend(ls) 
    plt.ylabel('Predicted vs actual') 
    plt.xlabel('Date') 

ありがとう

答えて

1

あなたは、いくつかの株式に属している値を取得するためにnp.whereを使用することができます。これは、一度、各株式について、配列を複数回フィルタリングすること

stocks = set(prediction[:,0]) 
for stock in stocks: 
    p_stock = prediction[np.where(prediction[:,0] == stock)] 
    # plot data from p_stock here 

注意を。だからあなたは、多くの異なる株式を持っていて、リストが本当に大きい場合は、辞書を使ってストック名をリストにマッピングし、リスト全体を1回でフィルタリングすることができます。

+0

こんにちは、それは働いた:D:D、私は多くのトラブルを保存しました。もう一度おねがいします。 –

+0

こんにちは、私はcsvファイルに同じ方法を書いてもいいですか?親切に私に説明することができますか?私は次のことをしましたが、最後の株式を手に入れました。 (0、predY.shape [0])内のiについて writer = csv.writer(予測(および予測)Y%s.csv '%在庫、' wb ')、区切り記号='、 ') i: row_to_enter = [dates [i]、perdy [i]、actualY [i]] writer.writerow(row_to_enter) –

+0

@ZenStan最後の在庫のみを取得している場合は、そのコードが在庫中であることを確認してください-ループ? –