使用pandas进行条件替换

时间:2016-03-31 15:48:43

标签: python pandas replace offset

我是python和pandas的新手......

我有一个带有一个文本列的数据框。我希望,对整个专栏来说,取代价值" AZB"值高于该值(偏移量为-1)

我怎么能做到这一点?我尝试过熊猫"其中"并尝试过

df[(df['INDEX'] == 'AZB')] = df['INDEX']-1

但没有工作

1 个答案:

答案 0 :(得分:1)

您可以将'AZB'值设置为NaN,然后使用fillna(method='ffill')将其替换为上一行中的值。

df.ix[df['INDEX'] == 'AZB', 'INDEX'] = np.NaN
df.fillna(method='ffill', inplace=True)

如果您的数据集不是很大,另一种方法是逐行遍历数据帧,但速度要慢得多:

for i in range(1, len(df)):
    if df.ix[i, 'INDEX'] == 'AZB':
        df.ix[i, 'INDEX'] = df.ix[i-1, 'INDEX']