[問題] dataframe appl能否返回數個df
版上各位好
我這邊在實際操作上碰到個需求
就是我該如何用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
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
03/31 17:22, 3F
推
04/01 02:23,
3年前
, 4F
04/01 02:23, 4F
→
04/02 08:56,
3年前
, 5F
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
Python 近期熱門文章
PTT數位生活區 即時熱門文章