亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在循環過程中將df附加到另一個df

如何在循環過程中將df附加到另一個df

慕雪6442864 2022-01-11 16:14:29
此代碼獲取數據并將數據制成一個循環并運行直到循環完成。所以我需要在每個過程完成后將數據附加到存儲數據的 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
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

在循環中或通過列表理解將值附加到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)


查看完整回答
反對 回復 2022-01-11
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

您還可以使用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)

將是所需的輸出。


查看完整回答
反對 回復 2022-01-11
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

我假設您獲得相同數量的列,并且這些列具有相同的名稱。例如這是基本思想:


df = pd.DataFrame()  # this will hold your all data


df1 = pd.DataFrame([(1, 2, 3)], columns=['a', 'b', 'c'])  # 1st iteration data

df2 = pd.DataFrame([(11, 22, 33)], columns=['a', 'b', 'c'])  # 2nd iteration data

df3 = 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    c

0    1    2    3

1   11   22   33

2  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 returns

for 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


查看完整回答
反對 回復 2022-01-11
  • 3 回答
  • 0 關注
  • 254 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號