[问题] 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