python - 如何根据其他行更新行?
问题描述
让我用一个例子来问我的问题。例如,我有一个这样的数据框:
DAY A B
0 10 6
1 12 8
2 18 6
3 20 10
4 16 12
5 12 8
6 14 10
我想根据上一列更改每一列。例如,在第 1 行中,我希望我的 A 值为 = (10+12)/2 * 5 = 55。对于 B 值和其他行也是如此。我想要的数据框应该是这样的:
DAY A B
1 55 35
2 75 35
3 95 40
4 90 55
5 70 50
6 65 45
我需要你们的帮助。
解决方案
用于DataFrame.add
添加移位值 byDataFrame.shift
与除以2
和乘以5
和最后仅删除第一NaN
行 by DataFrame.iloc
:
df = df.add(df.shift()).div(2).mul(5).iloc[1:]
print (df)
A B
DAY
1 55.0 35.0
2 75.0 35.0
3 95.0 40.0
4 90.0 55.0
5 70.0 50.0
6 65.0 45.0
或者可以使用rolling mean
with 2
for sum 2 rows with 除以2
:
df = df.rolling(2).mean().mul(5).iloc[1:]
print (df)
A B
DAY
1 55.0 35.0
2 75.0 35.0
3 95.0 40.0
4 90.0 55.0
5 70.0 50.0
6 65.0 45.0
推荐阅读
- numpy - NumPy - 如何广播不同形状的数组
- puppet - Puppet:从失败的运行中恢复
- android - 关于辞职 apk 的建议
- javascript - 保持侧边栏面板在重定向时展开
- spring - Cloud Foundry (PCF) 中的 Spring Boot 禁用 Whitelabel 错误页面
- c# - 合并 linq 语句或离开
- tensorflow - 具有恒定大小批次的 tf.data.Dataset
- python-3.x - 文件上传烧瓶的单元测试用例
- javascript - 在 ReactJS 中进行 ajax 调用的设计原则(在哪里放置 ajax 调用)
- android - Android Activity 中的神秘事件我似乎无法捕捉到