python dataframe 某列将0值补充为上一个点的值
如何让10-5之间的0填充为10,5后的的0填充为5,也就是如果某点值为0,就让他等于上一个不为0的点
python dataframe 某列将0值补充为上一个点的值
如何让10-5之间的0填充为10,5后的的0填充为5,也就是如果某点值为0,就让他等于上一个不为0的点
import pandas as pd
df = pd.DataFrame()
df['a'] = [1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0]
for idx, val in enumerate(df['a']):
if val == 0:
df['a'][idx] = df['a'][idx-1]
print(df)
# 输出
a
0 1
1 1
2 1
3 1
4 1
5 1
6 5
7 5
8 5
9 5
10 5
11 5
12 5
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答500 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
没太明白你的需求。是不是要把open那一列的2到4行置为10,6行之后置为5?
引申一下,有一个列表[10, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0],按我的理解,如果是这么个列表,你是希望第2到4个元素置为10,第6到8个元素置为5,第10到12个元素置为1。
可以这么做:
套到你的这个问题: