版上各位好
我這邊在實際操作上碰到個需求
就是我該如何用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 內
還勞煩版友們解答,也謝謝願意花時間了解我問題的人