2016-03-31 36 views
1

Python ve pandalar konusunda yeniyim ...pandalar ile koşullu değiştirme

Tek yazı sütunu olan bir veri çerçevem ​​var. Tüm sütun için, "AZB" değerini bu değerin üzerindeki değerle (-1 ofset değeri) değiştirmek istiyorum. Bunu nasıl yapabilirim? Ben "nerede" pandalar ile çalıştı ve aynı zamanda

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

çalıştı ama yukarıdaki satırdan değerlerle değiştirmek için fillna(method='ffill') kullanmak sonra NaN için 'AZB' değerleri ayarlamak ve olabilir

cevap

1

çalışmadı. Veri kümesi iri değilse

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

, başka bir yol satıra göre dataframe satır ile yineleme olacaktır, ama bu çok daha yavaş olacaktır:

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