python - 熊猫意味着邻居零?
问题描述
我有以下数据:
1: 0
2: 800
3: 800
4: 800
5: 800
6: 0
7: 0
8: 800
9: 800
10: 0
11: 800
12: 0
现在我想用 400(实际上是 800 和相邻 0 的平均值)替换所有 800,它是任何零(之前或之后)的邻居。
最终结果:
1: 0
2: 400
3: 800
4: 800
5: 400
6: 0
7: 0
8: 400
9: 400
10: 0
11: 400
12: 0
使用 Pandas DataFrame 的正确方法是什么?
解决方案
您可以根据 2 个布尔条件的并集将您的系列减半:
df = pd.DataFrame({'col': [0, 800, 800, 800, 800, 0, 0, 800, 800, 0, 800, 0]})
df.loc[df['col'].shift().eq(0) | df['col'].shift(-1).eq(0), 'col'] //= 2
print(df)
col
0 0
1 400
2 800
3 800
4 400
5 0
6 0
7 400
8 400
9 0
10 400
11 0
推荐阅读
- python-3.x - .any() 如何获取行而不是列?
- sas - SAS为宏的每个值重复一组语句
- javascript - 在屏幕外部单击时关闭此弹出窗口
- javascript - 如果固定 div 高度动态变化,则在固定 div 之后定位 div,css 问题
- ios - MKCoordinateSpan 的最小值和最大值
- node.js - async.EachSeries 无法正常工作
- python - 如何在函数中添加参数名称?
- javascript - 用于模态和传递隐藏输入的 Javascript 无法正常运行
- java - 修改两个不同函数的 JSON 输出
- sql - Sql 开发者设置