我希望能够在两个不同列的两个数字之间填充值。我有一个数据框(df),它看起来像这样:
当我在Start column和End column中有数字时,我只想填充前面的Value column。
基本上,“Start”表示进程开始,“End”表示进程结束。因此,只能在这两者之间填写Value column。
下面是一个用于生成数据的代码,DF就是我想要得到的结果。
感谢您的提前帮助。
下面是一个用于生成数据的代码,DF就是我想要得到的结果。
from datetime import datetime, timedelta
import pandas as pd
import numpy as np
import random
np.random.seed(11)
date_today = datetime.now()
ndays = 10
df = pd.DataFrame({'date': [date_today + timedelta(days=x) for x in range(ndays)],
'Start': pd.Series(np.random.randn(ndays)), 'End':pd.Series(np.random.randn(ndays))})
df = df.set_index('date')
df = df.mask(np.random.random(df.shape) < .6)
df.End[{0,1,2,5,6,9}]=np.nan
df.Start[5]=1
df.Start[{1,3,4,2,8, 9}]=np.nan
df['Value']=np.nan
df.Value[{0,5}]=[0.3,0.1]
df
我希望获得一个像这样的数据框(DF):
End Start Value
date
2018-06-18 22:34:35.964286 NaN 1.749455 0.3
2018-06-19 22:34:35.964286 NaN NaN 0.3
2018-06-20 22:34:35.964286 NaN NaN 0.3
2018-06-21 22:34:35.964286 0.561192 NaN 0.3
2018-06-22 22:34:35.964286 NaN NaN NaN
2018-06-23 22:34:35.964286 NaN 1.000000 0.1
2018-06-24 22:34:35.964286 NaN NaN 0.1
2018-06-25 22:34:35.964286 NaN NaN 0.1
2018-06-26 22:34:35.964286 -0.031075 NaN 0.1
2018-06-27 22:34:35.964286 NaN NaN NaN
感谢您的提前帮助。