Numpy Arrayを更新するためにforループを使用していますが、動作していないようです。私は間違って何をしていますか?Python - Looping Issue
私のコード
import pandas as pd
import pandas_datareader as pdr
import datetime as dt
from dateutil.relativedelta import relativedelta
import matplotlib.finance as mf
import numpy as np
import scipy as sp
def pull_price(ticker):
df = pd.read_csv(ticker+'.csv')
df1=np.array(df['Adj Close'])
return df1
tickers=['^DJI','^GSPC','^IXIC','^GDAXI','^HSI','^FCHI','^N225']
dic={}
for i in tickers:
dic[i]=pull_price(i)
for i in tickers:
count = len(dic[i])
for j in range(0,count):
try:
dic[i][j] = float(dic[i][j])
except ValueError:
dic[i][j] = float(dic[i][j-1])
dic_1= dic
print(dic['^GSPC'][0])
for i in tickers:
count = len(dic_1[i])
for j in range(0,count):
dic_1[i][j] = np.log(dic_1[i][j])
print(dic_1['^GSPC'][0])
print(dic['^GSPC'][0])
第一Print
コマンドのシーケンス
411.410004
6.01959029389
6.01959029389
で3印刷コマンドの私の出力は、それは私に正しい値を示しています。 しかし、次の2のためにPrint
コマンドはなぜ同じ値を示していますか?私はdic_1
を更新するだけで、dic
は更新しません。私は間違って何をしていますか?
名前は同じオブジェクトです。 dic_1を更新する場合は、dicも更新しています。代わりに、コピーを作成する必要があります。それらが不変オブジェクトを保持している場合は、 'dic_1 = dic.copy()'が動作するはずです。 – ayhan
はそれを試みたが、私に「DIC_1 = DIC」私は使用 だから私のコードで –