2017-10-08 84 views
1

我必須連接並讀取10個數據庫中的數據,並將數據保存爲熊貓數據框。在組合數據幀後,我有一個空的數據幀:在熊貓數據框中結合數據框

df1 = pd.DataFrame(columns={'name', 'ip'}) 

# in a loop I connect to db and read sql data and combine data 

for db in database_list: 
    db_df = pd.read_sql_query(sql, con) 
    df1 = df1.append(db_df) 
    df1 = df1.drop_duplicates(subset='name', keep='last') 

print df1 

df1是一個空的數據幀。在這種情況下結合數據幀的正確方法是什麼?

回答

1

我認爲你可以將每個DataFramelist和最後concat都追加到一個大df

dfs = [] 
for db in database_list: 
    db_df = pd.read_sql_query(sql, con) 
    print db_df 
    db_df = db_df.drop_duplicates(subset='name', keep='last') 
    dfs.append(db_df) 

df1 = pd.concat(dfs, ignore_index=True) 
print df1 
+0

與名單上有' 「NoneType」對象有沒有屬性「追加」 '錯誤 – TheNone

+0

Hmmmm, 'db_df = pd.read_sql_query(sql,con)'爲你返回'DataFrame'?你能檢查它嗎? – jezrael

+0

是的,這是一個數據框,我認爲我做錯誤的東西在滴重複 – TheNone