我有一个示例数据集:
ID sequence
H100 ATTCCT
H231 CTGGGA
H2002 CCCCCCA
Run Code Online (Sandbox Code Playgroud)
我只想在每个 ID 前添加一个“>”:
ID sequence
>H100 ATTCCT
>H231 CTGGGA
>H2002 CCCCCCA
Run Code Online (Sandbox Code Playgroud)
从这篇文章将字符串附加到熊猫数据帧所述列中每个值的开头(优雅地) 我得到了代码:
df["ID"] = '>' + df["ID"].astype(str)
Run Code Online (Sandbox Code Playgroud)
但是,出现了此警告消息:
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
Run Code Online (Sandbox Code Playgroud)
所以我试过:
df.loc[: , "ID"] = '>'
Run Code Online (Sandbox Code Playgroud)
出现了同样的错误信息
我应该如何纠正它?
谢谢
试一试 - 在 Python 3.5 中对我有用:
df['ID'] = ('>' + df['ID'])
如果这样做不行,您可能需要参考 df.iloc[:,1] 例如(只需首先在终端中输入它以确保您抓住了 ID 所在的正确字段)。
您可能遇到的另一个问题是您的数据帧是作为另一个数据帧的一部分创建的。尝试将您的“切片”转换为它自己的数据帧:
dataframename = pandas.DataFrame(dataframename)
Run Code Online (Sandbox Code Playgroud)
然后执行我发布的代码片段。
最佳 - 马特
不知道为什么我会因为试图回答有实际验证答案的人的问题而失去声誉点……有点想知道这个论坛目前的意义是什么。