2017-05-03 1 views
0

루프에서 생성 된 테이블의 열을 데이터 프레임에 추가하려고합니다. pandas.merge을 사용하여이 작업을 수행하고 싶었지만 나에게 도움이되지 않는 것 같습니다.팬더를 사용하여 루프에서 열을 결합 및 추가

내 코드 : 간결함을 위하여 선택 문을 단축

from datetime import date 
from datetime import timedelta 
import pandas 
import numpy 
import pyodbc 

date1 = date(2017, 1, 1) #Starting Date 
date2 = date(2017, 1, 10) #Ending Date 

DateDelta = date2 - date1 
DateAdd = DateDelta.days 
StartDate = date1 
count = 1 

# Create the holding table 
conn = pyodbc.connect('Server Information') 
**basetable = pandas.read_sql("SELECT....") 

while count <= DateAdd: 
    print(StartDate) 
    **datatable = pandas.read_sql("SELECT...WHERE Date = "+str(StartDate)+"...") 
    finaltable = basetable.merge(datatable,how='left',left_on='OrganizationName',right_on='OrganizationName') 
    StartDate = StartDate + timedelta(days=1) 
    count = count + 1 
print(finaltable) 

하지만 테이블이 같은 생산보기 :

** Basetable

School_District 
--------------- 
District_Alpha 
District_Beta 
... 
District_Zed 

** 데이터 테이블

School_District|2016-01-01| 
---------------|----------| 
District_Alpha | 400  | 
District_Beta | 300  | 
...   | 200  | 
District_Zed | 100  | 

필자는 데이터 테이블을 작성하여 특정 루프에 대해 선택한 날짜의 이름을 사용하므로 열 이름을 고유하게 사용할 수 있습니다. 내 문제는, 그러나, 위의 코드는 단지 하나의 데이터 열을 생산한다는 것입니다. 이유에 대한 좋은 추측을 가지고 있습니다 : 마지막 병합 만 처리 중입니다 - 나는 pandas.append을 사용하여이를 처리 할 수 ​​있다고 생각했지만 pandas.append은 병합과 같이 "결합"하지 않습니다. 어떤 종류의 일을 성취 할 수있는 다른 방법이 있습니까 & 팬더를 사용하여 추가 하시겠습니까? 내 목표는 데이터를 필요에 따라 다른 날짜를 쉽게 입력 할 수 있도록 유연하게 유지하는 것입니다. 결국

는, 내가보고 싶은 것은 :

School_District|2016-01-01|2016-01-02|... |2016-01-10| 
---------------|----------|----------|-----|----------| 
District_Alpha | 400  | 1  |  | 45  | 
District_Beta | 300  | 2  |  | 33  | 
...   | 200  | 3  |  | 5435 | 
District_Zed | 100  | 4  |  | 333 | 

답변

1

귀하의 오류가 문 finaltable = basetable.merge(datatable,...)입니다. 각 루프 반복에서 원본 basetable을 새 datatable으로 병합하고 결과를 finaltable ...에 저장하고 버립니다. 필요한 것은 basetable = basetable.merge(datatable,...)입니다. No finaltable s.

+0

글쎄, 그건 당황 스럽네. 도와 주셔서 감사합니다. – userPinealbody

관련 문제