将字符添加到熊猫列中每个值的开头

Posted

技术标签:

【中文标题】将字符添加到熊猫列中每个值的开头【英文标题】:adding character to start of each value in column pandas 【发布时间】:2016-07-27 06:50:53 【问题描述】:

我有一个样本数据集:

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

同样的错误信息出现了

我应该如何纠正它?

谢谢

【问题讨论】:

在您执行此操作之前是否对df 进行了任何处理?从今天早些时候看到这个问题:***.com/questions/36455394/… @root 谢谢!我做了一个副本,它成功了! 使用的是什么版本? pd.__version__. 您修改副本或原始df的意图是什么? 我通过制作 df 的副本解决了这个问题!谢谢大家 【参考方案1】:

试一试 - 在 Python 3.5 中对我有用:

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

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

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

dataframename = pandas.DataFrame(dataframename)

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

最佳 - 马特

不知道为什么我会因为尝试为具有实际验证答案的人回答问题而失去声望...有点想知道这个论坛目前的意义是什么。

【讨论】:

尝试使用我更新的答案,让我知道它是否足够清楚。如果你真的有我可以玩的代码,我可以更快地回答你的问题(前提是上述方法不起作用)。顺便说一句,如果它对您有帮助,请投票支持我的回答,到目前为止,这篇文章只是出于某种奇怪的原因损害了我的声誉。

以上是关于将字符添加到熊猫列中每个值的开头的主要内容,如果未能解决你的问题,请参考以下文章

熊猫计算列中每个值的出现次数

熊猫字符串按字符转换为整数

将文本添加到 Object 属性值的开头

计算熊猫列中每个唯一值的数量[重复]

如何在熊猫中显示类似空字符串的列值的计数

将字符串的所有字母字符转换为熊猫数据框中单独列中的整数