我使用熊貓0.18.1,雖然與此代碼擺弄,熊貓to_sql()將指數
import pd
def getIndividualDf(item):
var1 = []
# ... populate this list of numbers
var2 = []
# ... populate this other list of numbers
newDf = pd.DataFrame({'var1': var1, 'var2': var2})
newDf['extra_column'] = someIntScalar
yield newDf
dfs = []
for item in someList:
dfs.append(getIndividualDf(item))
resultDf = pd.concat(dfs)
resultDf['segment'] = segmentId # this is an integer scalar
from sqlalchemy import create_engine
engine = create_engine('postgresql://'+user+':'+password+'@'+host+'/'+dbname)
resultDf.reset_index().to_sql('table_name', engine, schema="schema_name", if_exists="append", index=False)
我得到這個異常:
(psycopg2.ProgrammingError)欄「關係「表名」的索引不存在
的確,表中沒有這樣的列,只是因爲數據框中沒有這樣的顯式列。這就是爲什麼它很奇怪。
運行
print(list(resultDf))
只是to_sql()
呼叫之前,收率
[ 'VAR1', 'VAR2', 'extra_column', '段']
卸下index=False
來自to_sql()
的通話將錯誤更改爲:
(psycopg2.ProgrammingError)列關係 「表格名」 的 「level_0」 不存在
我百思不得其解。我如何擺脫index
列?
更新
print(resultDf.head())
產生了這樣的信息:
var1 var2 extra_column segment
0 8 0.101653 2077869737 201606
1 9 0.303694 2077869737 201606
2 10 0.2077869737 201606
3 11 0.661064 2077869737 201606
4 12 0.820924 2077869737 201606
儘量不要reset_index()和在to_sql()調用中添加index = False,也可以向我們顯示resultDF.head() –
resultDF.head()從沒有名稱的基於零索引的列開始,然後繼續wi所有對我感興趣的命名專欄。我會在問題中發佈一個示例。感謝您的幫助,我真的很感激它。 – AlexanderMP