2016-04-06 2 views
0

У меня есть набор образцов данных:добавления символов в начало каждого значения в панд колонке

ID  sequence 
H100  ATTCCT 
H231  CTGGGA 
H2002  CCCCCCA 

Я просто хочу, чтобы добавить «>» перед каждым ID:

ID  sequence 
>H100  ATTCCT 
>H231  CTGGGA 
>H2002  CCCCCCA 

С этот пост Append string to the start of each value in a said column of a pandas dataframe (elegantly) Я получил код:

df["ID"] = '>' + df["ID"].astype(str) 

Однако это предупреждение придумал:

A value is trying to be set on a copy of a slice from a DataFrame. 
Try using .loc[row_indexer,col_indexer] = value instead 

поэтому я попытался:

df.loc[: , "ID"] = '>' 

То же самое сообщение об ошибке пришел

Как я должен исправить это?

благодарит

+0

Выполнено ли какое-либо действие с 'df', прежде чем вы это сделаете? См. Эти вопросы с сегодняшнего дня: http://stackoverflow.com/questions/36455394/how-to-avoid-a-value-is-trying-to-be-set-on-a-copy-of-a-slice -from-a-dataframe – root

+0

@root спасибо! я сделал копию, и это сработало! – Jessica

+0

Какая версия используется? 'П.Д. .__ version__'. –

ответ

1

Дайте этому выстрел - у меня работает в Python 3.5:

df['ID'] = ('>' + df['ID'])

Если это не будет делать это, возможно, придется обратиться к df.iloc [:, 1] например (просто введите его в терминал сначала, чтобы убедиться, что вы захватили правое поле, где находится идентификатор).

Другая проблема, с которой вы можете столкнуться, заключается в том, что ваш фреймворк данных был создан как фрагмент другого фрейма данных. Попробуйте преобразовать свой «срез» в свой собственный фреймворк данных:

dataframename = pandas.DataFrame(dataframename) 

Затем сделайте снимок кода, который я разместил.

Best - Matt

Не знаю, почему я теряю очки репутации за то, чтобы отвечать на вопросы людей с действительно проверенными ответами ... вроде интересно, что точка этого форума в данный момент.

+0

Попробуйте использовать мой обновленный ответ и дайте мне знать, если он достаточно ясен. И если у вас есть код, с которым я могу играть, я могу ответить на ваш вопрос намного быстрее (при условии, что выше не работает). Пожалуйста, проголосуйте за мой ответ, если это поможет вам узнать, пока этот пост только повредил моей репутации по какой-то странной причине. – Matt

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