Python 如何在数据帧中找到条件滚动平均值?
我将数据帧设置为:Python 如何在数据帧中找到条件滚动平均值?,python,database,Python,Database,我将数据帧设置为: st ft value 10 12 10 9 13 20 8 9 30 7 8 40 6 7 50 5 8 60 4 5 70 3 4 80 2 4 90 1 2 100 用于创建上述数据帧的代码: df=pd.数
st ft value
10 12 10
9 13 20
8 9 30
7 8 40
6 7 50
5 8 60
4 5 70
3 4 80
2 4 90
1 2 100
用于创建上述数据帧的代码:
df=pd.数据帧([[10,9,8,7,6,5,4,3,2,1],[12,13,9,8,7,8,5,4,2],
[10,20,30,40,50,60,70,80,90,100]].T.rename(列={0:“st”,1:“ft”,2:“value”})
在数据帧中有三列st(实验开始时间)、ft(实验完成时间)和value(观察值)。完成时间>开始时间。我想创建一个具有以前观察到的值的新列。但取最后一个观测值的条件是——
完成时间(最后一行)
df['last\u observed\u value']=-10000
对于范围内的i(df.st.尺寸-1):
对于范围内的j(i,df.st.尺寸-1):
如果(df.st[j]
您能解释一下上次观察值所用的条件吗?请验证您的期望值表是否包含正确的值。对于上次观察到的值,如果当前行@paradox的st是正确的。是否可以以lamda表达式的形式写入?
st ft value last_observed_value
10 12 10 30.0
9 13 20 30.0
8 9 30 40.0
7 8 40 50.0
6 7 50 70.0
5 8 60 70.0
4 5 70 80.0
3 4 80 100.0
2 4 90 100.0
1 2 100 None
df = pd.DataFrame([[10, 9, 8, 7, 6, 5, 4, 3, 2, 1], [12, 13, 9, 8, 7, 8, 5, 4,4,2], [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]]).T.rename(columns={0:"st", 1:"ft", 2:"value"})
df['last_observed_value'] = -10000
for i in range(df.st.size - 1):
for j in range(i,df.st.size - 1):
if(df.st[j]< df.ft[j+1]):
df['last_observed_value'][i] = df.value[j+1]
if(df.st[j] == df.ft[j+1]):
df['last_observed_value'][i] = df.value[j+1]
break