2017-10-08 85 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