如何在循环过程中将df附加到另一个df

此代码获取数据并将数据制成一个循环并运行直到循环完成。


所以我需要在每个过程完成后将数据附加到存储数据的 df


代码 :


a = "SELECT id FROM USER WHERE time >'2018-03-01'"

dataa = pd.read_sql_query(a, con=engine)

print(dataa)


for userid in dataa:

   x=f"SELECT idbody FROM col1 WHERE user_id='{userid}'"

   data = pd.read_sql_query(x,con = engine)

所以这里的数据被处理并且每次产生的数据都不同需要将数据附加到存储所有被处理数据的df


慕雪6442864
浏览 290回答 3
3回答

慕无忌1623718

在循环中或通过列表理解将值附加到list并且仅使用一次concat:a = "SELECT id FROM USER WHERE time >'2018-03-01'"dataa = pd.read_sql_query(a, con=engine)dfs = []for userid in dataa:    x=f"SELECT idbody FROM col1 WHERE user_id='{userid}'"    data = pd.read_sql_query(x,con = engine)    dfs.append(data)df = pd.concat(dfs, ignore_index=True)dfs = [pd.read_sql_query(f"SELECT idbody FROM col1 WHERE user_id='{userid}'",con = engine)        for userid in dataa]df = pd.concat(dfs, ignore_index=True)

慕村9548890

您还可以使用concat:a = "SELECT id FROM USER WHERE time >'2018-03-01'"dataa = pd.read_sql_query(a, con=engine)print(dataa)df = pd.DataFrame()for userid in dataa:    x=f"SELECT idbody FROM col1 WHERE user_id='{userid}'"    data = pd.read_sql_query(x,con = engine)    df = pd.concat([df_all, data])现在:print(df)将是所需的输出。

慕神8447489

我假设您获得相同数量的列,并且这些列具有相同的名称。例如这是基本思想:df = pd.DataFrame()  # this will hold your all datadf1 = pd.DataFrame([(1, 2, 3)], columns=['a', 'b', 'c'])  # 1st iteration datadf2 = pd.DataFrame([(11, 22, 33)], columns=['a', 'b', 'c'])  # 2nd iteration datadf3 = pd.DataFrame([(111, 222, 333)], columns=['a', 'b', 'c'])  # 3rd iteratin data etc.for data in [df1, df2, df3]:    df = df.append(df1)     a    b    c0    1    2    31   11   22   332  111  222  333你需要做的是:a = "SELECT id FROM USER WHERE time >'2018-03-01'"dataa = pd.read_sql_query(a, con=engine)print(dataa)df_all = pd.DataFrame()  # create an empty df to store all returnsfor userid in dataa:    x=f"SELECT idbody FROM col1 WHERE user_id='{userid}'"    data = pd.read_sql_query(x,con = engine)    df_all = df_all.append(data)  # update df with new dframes
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python