python - 数据框中多列操作的矢量化解决方案
问题描述
我可能会有一个大数据框,其中第一行如下:
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']
你知道怎么做吗?
解决方案
DataFrame.sub
与 一起使用DataFrame.shift
:
df1 = df.iloc[:, 1:].astype(float)
df.iloc[:, 1:] = df1.sub(df1.shift(-1, axis=1))
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 NaN
推荐阅读
- python - 在发出 Python POST 请求之前,我们是否需要进行 json.dumps 和编码?
- r - 从一个变量的不同问题中收集相同的答案?
- python - 修改函数输入参数是不好的做法吗?
- node.js - 如何使用他们的节点客户端将脚本放入弹性搜索?
- kubernetes - 默认 GKE pod 上的 CPU 限制
- delphi - 如何在 Delphi 10.2 中使用 TComPort 清除客户显示?
- python - 比较 Pyspark 数据帧的值(列表)
- email - 有没有办法在发送带有 Mautic 分段广播邮件合并的消息之间设置延迟?
- wordpress - Woocommerce 价格缓存
- html - 如何在 SASS 中选择输入类型复选框,选中并禁用?