我正在开展一个小项目,但我遇到了一个问题。
我正在读取类似的文件(请注意,原始文件大约有40k行):
35 IMAGE:1679942 SAMD4 Sterile alpha motif domain Hs.98259 ATI146610
36 IMAGE:1700154 AI049531
37 IMAGE:1865232 AI269361
如您所见,有些单元格包含信息,有些则不包含。
所以我希望在没有信息存储的每个单元格中都有 N / A 。我怎样才能做到这一点?
.split()会创建一个没有这些单元格的列表。有没有解决方案,如何将所有这些点击保留在列表中,即line = ["36", "IMAGE:1700154", "", "", "", "AI049531", ...]
答案 0 :(得分:2)
您可以在标签页上split(修改使用评论中的数据):
data = """35\tIMAGE:1679942\tSAMD4\tSterile alpha motif domain\tHs.98259\tATI146610
36\tIMAGE:1700154\t\t\tAI049531"""
for line in data.split("\n"):
print line.split("\t")
结果:
['35', 'IMAGE:1679942', 'SAMD4', 'Sterile alpha motif domain', 'Hs.98259', 'ATI146610']
['36', 'IMAGE:1700154', '', '', 'AI049531']
答案 1 :(得分:0)
在将数据导入CSV并随后导入所需的列表格式之前,您必须先准备好数据。
1)首先找到你想拥有的最大列数
2)找到每个行项目的模式。例如。 A *,Sterite *等。希望这种模式可以区分不同的行项目。
3)对于每一行,执行row.split(“\ t”)`并将每个行项与模式匹配,以在行中找到正确的索引。
4)newRow[correct_index] = oldrow[index] and "" for others