[問題] dataframe appl能否返回數個df

看板Python作者 (14號星期五的傑森)時間3年前 (2021/03/31 15:26), 3年前編輯推噓4(402)
留言6則, 4人參與, 3年前最新討論串1/1
版上各位好 我這邊在實際操作上碰到個需求 就是我該如何用apply 搭配自定義的function去返回數個df 我知道可以用 df[['A1', 'A2']]=df.apply(func) 然後func只要 return pd.Series([a1, a2]) 這樣就可以一次產生數個column 但我現在問題是在於說 我該如何產生數個df 就是我希望 df1, df2 = df.apply(func) 但這樣我不知道該如何操作 我先簡述一下概況,假若我手頭上有一個dataframe 每一個column 各是不同種類的商品 index則是按照先後順序排列 假設如下: import pandas as pd df = pd.DataFrame({ 'A': [101, 102, 99, 100, 105], 'B': [27, 31, 33, 34, 40], 'C': [300, 211, 203, 299, 254] }) 然後我又自定義一個計算過程 但這計算過程中,可能會產出數個不同資訊 然後我想將這些 資訊各自存成一個df 舉個例來說,我定義一個function 如下 def test(s): for i , val in s.iteritems(): x=10 // val y= 1 if val - (x*1000) > 3 else -1 然後我希望將 x 跟 y的結果另外存成兩個df 這樣我就會有一個df是 A B C 的x 跟 A B C 的y 但...不知道該如何才能將結果返回成兩個df 因此想詢問版上大大們,python該如何有辦法達到上述的訴求 或是若不行的話,有甚麼建議的方式可以達到一樣的效果 目前我只想到就寫兩個def function 但因為我想說這兩個function有很多重複到的地方 所以想說就不要那麼拖時間,就寫在一個def 內 還勞煩版友們解答,也謝謝願意花時間了解我問題的人 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.204.141.78 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1617175562.A.53D.html

03/31 16:27, 3年前 , 1F
寫成一個df 再拆成幾個df?
03/31 16:27, 1F
想詢問樓上的方法是想用產生數個column的方法再去拆嗎? 但這樣不是要先設好column的名稱嗎? ※ 編輯: jasonhsu14 (123.204.141.78 臺灣), 03/31/2021 16:50:49

03/31 17:20, 3年前 , 2F
03/31 17:20, 2F

03/31 17:22, 3年前 , 3F

04/01 02:23, 3年前 , 4F
建議搜尋pandas apply return multiple columns
04/01 02:23, 4F

04/02 08:56, 3年前 , 5F
if 条件成立: a=df; else b=df;
04/02 08:56, 5F
謝謝樓上各位的解答,目前cute大大的方法跟我的需求比較貼近 也感謝cute大大花時間寫code供參考 ※ 編輯: jasonhsu14 (220.129.194.195 臺灣), 04/03/2021 14:14:22

04/07 16:30, 3年前 , 6F
不客氣~
04/07 16:30, 6F
文章代碼(AID): #1WP2GAKz (Python)
文章代碼(AID): #1WP2GAKz (Python)