2015-07-03 2 views
0

В моей ситуации, я хочуPython: В DataFrame, как заменить значение float на строковое значение?

вход:

No col1 col2 col3 
1 -999 -999 -999 
2 1 2 3 
3 2 4 -999 
4 3 5 blank 

выход: - ''

No col1 col2 col3  
1 . . .  
2 1 2 3  
3 2 4 . 
4 3 5 . 

как конвертировать -999> ?

+0

Можете ли вы также опубликовать свое усилие и где вы терпите неудачу ..? – shaktimaan

+0

df = df.replace ([- 999, ''], ['.', '.']) ValueError: не удалось преобразовать строку в float:. –

+0

Посмотрите (http://stackoverflow.com/questions/25698710/replace-all-occurrences-of-a-string-in-a-pandas-dataframe-python) .. – shaktimaan

ответ

0

Вы можете сделать следующее:

импорт панд как П.Д. импорта NumPy как нп

d = {'col1': [-999, 1,2,3], 'col2': [-999, 2,4,5], 'col3': [-999, 3,-999,-999]} 

df = pd.DataFrame(d) 

df[df==-999] = '.' 

print(df) 

Что дает:

col1 col2 col3 
0 . . . 
1 1 2 3 
2 2 4 . 
3 3 5 . 

Не уверен, что black в вашем вопросе. Я просто сделал это в -999 в примере.

+0

большое спасибо –

+0

, но ваш код в ошибке: ValueError: неверный литерал для long() с базой 10: '.' –

+0

Пожалуйста, укажите более подробную информацию для вас. Код для создания вашего примера dataframe был бы хорошим началом. также какую версию панд вы используете и питон. – Marcin

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