2017-01-05 2 views
1

Я пытаюсь заменить значения в «отображенном» фрейме данных на отображения в «dataframe» отображения.заменить значения в dataframe python

for column in df: 
    mapped[column] = df[column].astype(str) 

for i, row in mappings.iterrows(): 
    coln = row['colname'] 
    val = row['value'] 
    map = row['mapping'] 
    print 'match::' + coln + ":"+str(val)+ ":"+str(map) 
    print mapped[mapped[coln]== val] 
    mapped[coln].replace(str(val), str(map)) 

print mapped.head() 

Несмотря на то, что имеются соответствующие записи, значения в «отображенном» dataframe не заменяются. Как я могу это исправить?

+1

'replace' не является' inplace' операция по умолчанию. Вы должны назначить изменения обратно в интересующий столбец. Итак - 'сопоставлено [coln] .replace (str (val), str (map), inplace = True)' –

ответ

2

mapped[coln].replace(str(val), str(map))

replace не Inplace по умолчанию. Либо передать его inplace=True или переназначить его:

mapped[coln].replace(str(val), str(map), inplace=True)

или

mapped[coln] = mapped[coln].replace(str(val), str(map))

+0

спасибо DeepSpace :) – SaikiHanee

Смежные вопросы