2015-01-27 5 views
1

У меня есть Dataframe с несколькими столбцами, для этого упрощения сокращенной версии:Изменить данные в пандах

ID geo value 
a1 FR 3   
a1 ES 7  
a1 DE 6  
a2 FR 3  
a2 ES 5  
a2 DE 10 

Я хочу изменить некоторые значения, мой файл огромен, основанный в некоторых условиях.

В идеале я хотел бы сделать:

df[(df.ID=='1') & (df.geo=='DE')]['value']=9999 

Но это не работает, я думаю, потому что я получить копию моего оригинального dataframe вместо этого dataframe

Любой простой способ обновления значений на основе в комплексе условия?

+0

Что вы делаете, называется [прикован индексации] (http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus- копия), поэтому вы правы, что работаете с копией в этом случае, вы должны использовать новые методы индексирования 'ix',' iloc' и 'loc', чтобы избежать этого – EdChum

ответ

2

Попробуйте это:

condition = (df.ID=='a1') & (df.geo=='DE') 
df.ix[condition, 'value'] = 9999