Skip to main content
 首页 » 编程设计

python之数据框中多列操作的矢量化解决方案

2025年05月04日9wuhuacong

我可能会有一个大数据框,其中第一行如下:

   BUCHDAT     y  y1   y2    y3     y4    y5     y6     y7 
7 2017-02-26 577 30.0 622.0 1785.0 2633.0 422.0 10497.0 364.0  

现在我想用公式替换列“y”到“y7”:

df['y'] = df['y'] - df['y1']

是否有任何矢量化解决方案?所以我想在每一列中应用这个公式,对于下一列,公式应该是:

df['y1'] = df['y1']- df['y2']

你知道怎么做吗?

请您参考如下方法:

这是一个使用底层 numpy 数组以获得良好性能的方法:

df.iloc[:,1:-1] = df.values[:,1:-1] - df.values[:,2:] 
 
print(df) 
 
    BUCHDAT      y     y1      y2     y3      y4       y5       y6     y7 
7  2017-02-26  547.0 -592.0 -1163.0 -848.0  2211.0 -10075.0  10133.0  364.0