저는 파이썬에서 1 년 동안 주식 포트폴리오를 추적하는 작은 프로그램을 작성하려고합니다. 기본적으로 모든 매수/매도를 등록하고 잔액을 추적합니다. 필자는 주문 목록을 검토하고 Pandas 데이터 프레임을 업데이트하고 포트폴리오를 보관합니다. (python pandas set_value가 지속되지 않습니까?
orders_book = DataFrame(np.zeros((num_of_days,num_of_companies+1)), ldt_timestamps, columns = book_keys)
for equity_sym in ls_symbols[1:2]:
for trade_date in ldt_timestamps:
if trade_date == ldt_timestamps[0]:
current_number = orders_book.xs(trade_date)[equity_sym]
for transaction in trades:
transaction_date = transaction[0]
transaction_sym = transaction[1]
if ((trade_date == transaction_date) and (equity_sym == transaction_sym)):
transaction_order = transaction[2]
transaction_number = transaction[3]
if str(transaction_order) == 'Buy':
current_number += transaction_number
if str(transaction_order) == 'Sell':
current_number -= transaction_number
orders_book.ix[trade_date,equity_sym, current_number] = current_number
가 [equity_sym] 은 내가 런타임에 인쇄하여 나는이 복잡한 루프가 확인 작동하는지 확인 당신을 설득 의견 유지 : 코드는 매우 불분명 보이지만 나는 팬더/NumPy와 아주 새로운 해요 보시다시피 orders_book
을 set_value
을 사용하여 업데이트합니다. 그러나 루프가 끝나고 간단히 print orders_book['GOOG']
으로 시도하면 orders_book
은 시작 부분, 즉 before 루프처럼 보입니다. 왜 그런가요? 도와 주셔서 감사합니다.
편집 : 코드가 변경되었으며 제대로 작동합니다. Panda의 잘못은 아니지만 코드에서 업데이트/쓰기 기능을 잘못 배치 한 것입니다. 노력에 감사드립니다!
'set_value '의 의미는 애매한 것으로 보이며, 새로운 DataFrame을 생성 할 수 있습니다. – Eike
대신'orders_book.ix [trade_date, equity_sym] = current_number'와 같은 것을 시도하십시오. –
@ChangShe : 불행히도 도움을 얻지 못했습니다 –