[英]Python remove outer quotes in a list of lists made from a data frame column
我有一个名为 positive_samples 的 Pandas 数据框,它有一个名为 Gene Class 的列,它基本上是一对存储为列表的基因。 它看起来像下面
整个数据框看起来像这样。
所以基因类列只是数据框中其他两列的组合。 我使用如下所示的基因类列制作了一个列表。 这将获取所有基因对列表并将它们整合到一个列表中。
#convert the column to a list
postive_gene_pairs = positive_samples["Gene Class"].tolist()
这是输出。
现在每对都用双引号括起来,这是我不想要的,因为我遍历这个列表并使用 .loc 方法在另一个名为 new_expression 的数据框中定位这些对,该数据帧将它们作为这样的索引
for positive_gene_pair in positive_gene_pairs:
print(new_expression_df.loc[[positive_gene_pair],"GSM144819"])
这会引发一个关键错误。
并且这肯定是因为每对都包含额外的引号,因为当我实例化一个如下所示的列表时,没有引号它工作得很好。
所以我的问题是如何删除额外的引号以使其与 .loc 一起使用? 要创建一个如下所示的列表,但是来自数据框列?。
pairs = [['YAL013W','YBR103W'],['YAL011W','YMR263W']]
我尝试了很多解决方法,如替换、剥离,但没有一个对我有用,理想情况下它们适用于字符串,但我试图让它们在列表上工作,有什么简单的解决方案吗? 我只想有一个像这个对列表这样的列表,它没有额外的单引号或双引号。
定义一个函数:
def listup(initlist):
# Converting string to list
res = ini_list.strip('][').split(', ')
return res
从改变
postive_gene_pairs = positive_samples["Gene Class"].tolist()
到
postive_gene_pairs = positive_samples["Gene Class"].apply(listup).tolist()
首先将字符串列表转换为列表:
import ast
postive_gene_pairs = positive_samples["Gene Class"].apply(ast.literal_eval).tolist()
然后删除[]
:
for positive_gene_pair in positive_gene_pairs:
print(new_expression_df.loc[[positive_gene_pair],"GSM144819"])
到:
for positive_gene_pair in positive_gene_pairs:
print(new_expression_df.loc[positive_gene_pair,"GSM144819"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.