用熊猫'向前替换'

时间:2018-04-03 19:43:36

标签: python pandas

我有一个df,每行看起来像这样:

series = pd.Series({0: 1.0,
 1: 1.0,
 10: nan,
 11: nan,
 2: 1.0,
 3: 1.0,
 4: nan,
 5: nan,
 6: nan,
 7: nan,
 8: nan,
 9: nan,
 'B': 3.0,
 'D': 1.0})

对于D中的每个值,我希望系列[series.D]为2,并且所有高于series.D的数值也是2.它有点像'前向替换'。 所以我想要的是:

target = pd.Series({0: 1.0,
 1: 2.0,
 10: nan,
 11: nan,
 2: 2.0,
 3: 2.0,
 4: nan,
 5: nan,
 6: nan,
 7: nan,
 8: nan,
 9: nan,
 'B': 3.0,
 'D': 1.0})

到目前为止,我已经:

def forward_replace(series):
    if pd.notnull(series['D']):
        cols = [0,1,2,3,4,5,6,7,8,9,10,11]
        target_cols = [x for x in cols if x > series.D]
        series.loc[target_cols].replace({1:2}, inplace=True)
return series

似乎不可能使用带有数字列标签的基于标签的索引?

0 个答案:

没有答案