루프에서 생성 된 테이블의 열을 데이터 프레임에 추가하려고합니다. 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 |
글쎄, 그건 당황 스럽네. 도와 주셔서 감사합니다. – userPinealbody