그래서 S & P500 (SPY) BP의 주가 (O & G/에너지 회사)의 주가를 가져 오려고합니다. 내가 찾고있는 결과는 3 열의 "테이블"입니다. 날짜는 1, Adj는 1 SPY의 닫기 및 Adj의 1 BP의 닫기. 그러나, 내 코드를 생성합니다 :Python을 사용하여 두 개의 금융 주식 가져 오기
ValueError: columns overlap but no suffix specified: Index(['SPY'], dtype='object')
나는이 오류가 내게 말하고있는 것을 이해합니다. 색인 열 "Adj Close"가 겹쳐 있습니다. 재고와 관계없이 우리가 매번 추출하는 컬럼을 "스파이 (SPY)"라고합니다.
import pandas as pd
def test_run():
start_date=('2016-03-10') #start date parameter
end_date=('2017-03-10') #end date parameter
dates=pd.date_range(start_date,end_date)
df1=pd.DataFrame(index=dates) #create empty dataframe df1
dfSPY=pd.read_csv("C:\SPY.csv",index_col="Date",parse_dates=True,
usecols=['Date','Adj Close'],na_values=['nan'])
#create dataframe for SPY stock
#rename Adj Close column to SPY to prevent clash
dfSPY=dfSPY.rename(columns={'Adj Close':'SPY'})
#join the 2 dataframes using DataFrame.join(), and how='inner'
df1=df1.join(dfSPY,how='inner')
#read in more stocks; SPY & BP
symbols=['SPY','BP']
for symbol in symbols:
df_temp=pd.read_csv("C{}.csv".format(symbol),index_col='Date',parse_dates=True,
usecols=['Date','Adj Close'],na_values=['nan'])
#rename to prevent clash
df_temp=df_temp.rename(columns={'Adj Close':symbol})
df1=df1.join(df_temp) #use default how='left'
print(df1)
if __name__=="__main__":
test_run()
그래서,이있다 : 열 이름은 고유해야하기 때문에 내가 사용하고 조인() 메소드는
코드는 ..., 음, 그런 일이 내가 해석 한 방법입니다 혼란 내가 가진 코드. 내가 잘못한 지구가 무엇인지 밝혀 줄 수있는 사람이 누구든지 있다면 알려주세요.
감사합니다.
NB/Adj Close는 다음과 같아야합니다. 'SPY'및 'BP'기호로 바뀝니다 – Matthew
아마도 과거에 파이썬으로 가져 오기가 뛰어 났을까요? 아마도 결국에는 엑셀에서도 차트를 제공해야 할 필요가 있거나 필요하기 때문에 VBScript로 직접 작업을 시작하면 나중에이 시간에 두 배의 노동 시간을 절약 할 수 있습니다. (복잡한 Python이 아니기 때문에) –
@VitaliPom python 내에서 Excel에 대한 탁월한 지원이 있습니다. vbcscript로 전환 할 필요가 없습니다. – e4c5