[問題] df.apply是否有辦法取得前一列的資料

作者: jasonhsu14 (小健人)   2020-11-15 21:20:22
大家好
小弟在學習dataframe路上,碰到的案例中
會有需要df然後row by row的執行計算的情況
甚至會需要前一列計算出來的結果
先附上範例
import pandas as pd
df=pd.DataFrame(data=[[1, 7], [3, 6], [5, 4]], columns=['A', 'B'])
def d(row):
if row['A'] > row['B']:
return pd.Series((1, row['A']+row['B']))
else:
return pd.Series((0, row['A']-row['B']))
df[['C', 'D']]=df.apply(d, axis=1)
上述我會得到一個
index | A | B | C | D
作者: TuCH (謬客)   2020-11-15 23:14:00
先創一個欄位把前一列的值存下來
作者: seefish (æ…•è°·æ…•é­š)   2020-11-15 23:21:00
我用SQL的window function去思考,rolling 看似可以處理你的需求,搜尋 dataframe window function 可以找到相關概念
作者: gene50814 (genechen)   2020-11-18 07:55:00
np.select 了解一下

Links booklink

Contact Us: admin [ a t ] ucptt.com