在列pandas中为每个值的开头添加字符

时间:2016-04-06 17:39:08

标签: python pandas

我有一个示例数据集:

 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"] = '>' 

出现了同样的错误消息

我该如何纠正呢?

谢谢

1 个答案:

答案 0 :(得分:3)

给出一个镜头 - 在Python 3.5中为我工作:

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

如果不能这样做,你可能需要参考df.iloc [:,1](例如,先在终端输入它,以确保你抓住了ID所在的正确字段)。

您可能遇到的另一个问题是您的数据框是作为另一个数据帧的一部分创建的。尝试将“切片”转换为自己的数据帧:

dataframename = pandas.DataFrame(dataframename)

然后执行我发布的代码片段。

最佳 - 马特

我不确定为什么我会因为尝试回答实际经过验证的答案的人的问题而失去声望点......有点想知道此论坛目前的重点是什么。