如何在Pandas DataFrame中实现面板数据的差分操作
用pandas内置的diff()方法就能直接实现,不需要额外安装第三方库,你要的分组计算不同商品的价格一阶差分,一行核心代码就能搞定。
完整实现代码
import pandas as pd # 构造你的样例数据 df = pd.DataFrame({ 'Day': [1,2,3,4,5,1,2,3,4,5], 'Price': [8,10,7,11,14,12,11,9,14,11], 'Good': ['apples']*5 + ['oranges']*5 }) # 核心逻辑:按商品分组后对Price列计算一阶差分,生成新列P1d df['P1d'] = df.groupby('Good')['Price'].diff(periods=1) # 输出查看结果 print(df)
说明
- 必须加上
groupby('Good')分组逻辑,否则会把橙子第一天的价格和苹果最后一天的价格计算差值,得到错误结果 diff()的periods参数为差分的步长,默认值为1即一阶差分,要计算多阶差分调整这个参数即可- 每组第一条数据没有前值,默认返回NaN,和你预期的NA结果一致
内容的提问来源于stack exchange,提问作者Agustin Jornet
相关产品推荐
相关产品推荐

