【发布时间】:2021-12-29 07:54:40
【问题描述】:
我有一个具有这种结构的 csv 文件:
| Path name | Path ID | Phenotype data |
|---|---|---|
| path name 1 | ID 1 | Table 1 |
| path name 2 | ID 2 | Table 2 |
最后一个单元格中的每个表格都有这样的结构:
| Gene_MGI_ID | Gene_ENSEMBL_ID | Phenotype list |
|---|---|---|
| MGI_1 | ENS_1 | [Pheno1,Pheno2,Pheno 3,...] |
| MGI_2 | ENS_2 | [Pheno5,Pheno8,Pheno 9,...] |
我正在使用此代码导入文件:
path=pd.read_csv(dir+"path_dataset.csv", header=0, index_col=0)
问题在于最后一列不是包含这 3 列的数据框,而是单个字符串。例如,导入后的第一个表由以下字符串表示:
' MGI_ID ENS_ID Pheno_list\n0 MGI:99702 ENSMUSG00000003873 [MP:0000218, MP:0000321, MP:0000571, MP:000069...'
如何在上述数据框中转换此字符串? 这里以表格的前三个元素作为 csv 文件结构的示例:
,Pathway,Path_ID,Pheno_data
0,response to organophosphorus,GO:0046683," MGI_ID ENS_ID Pheno_list
0 MGI:96648 ENSMUSG00000071076 [MP:0000278, MP:0000351, MP:0001156, MP:000126..."
1,response to cAMP,GO:0051591," MGI_ID ENS_ID Pheno_list
0 MGI:96648 ENSMUSG00000071076 [MP:0000278, MP:0000351, MP:0001156, MP:000126..."
2,secondary metabolite biosynthetic process,GO:0044550," MGI_ID ENS_ID Pheno_list
【问题讨论】:
-
你的 csv 文件的分隔符是什么?您应该将其指定为参数,例如:
path=pd.read_csv(dir+"path_dataset.csv", sep='\t', header=0, index_col=0) -
我用
p.to_csv("Results/path_dataset.csv", header=True, sep=",")保存了文件,但在导入时也使用了“sep=','”,结果相同 -
你能在问题中发布几行你的csv吗?
-
@Tranbi 当然,我在底部添加了它
-
你是如何在你的 csv 中写出那些长长的多行字符串的?我想它们也应该用
,分隔...?
标签: python pandas string dataframe csv