我正在尝试编写一个python脚本来操作excel电子表格.
假设是否,我有样本数据:
Gene chrom strand TSS TES Name
NM_145215 chr5 + 135485168 135488045 Abhd11
NM_1190437 chr5 + 135485021 135488045 Abhd11
NM_1205181 chr14 + 54873803 54888844 Abhd4
NM_134076 chr14 + 54878906 54888844 Abhd4
NM_9594 chr2 + 31615464 31659747 Abl1
NM_1112703 chr2 + 31544075 31659747 Abl1
NM_207624 chr11 + 105829258 105851278 Abl1
NM_9598 chr11 + 105836521 105851278 Ace2
NM_1130513 chrX + 160577273 160626350 Ace2
NM_27286 chrX + 160578411 160626350 Ace2
对于那些相似的名称(第6列),我想要检索具有最少TSS的整行.
例如,对于前两行-Abhd11名称,我想在结果中保存第二行,因为TSS 135485021< 135485168.所以具有相同名称的所有集合.
任何想法和意见表示赞赏.
解决方法:
输入
如果可能的话,我会将excel文件保存为csv文件,然后使用csv
module加载到python中.
或者你可以使用xlrd
module for reading excel files – 虽然我没有使用过这个并且对它不太了解.
openpyxl
是解析excel文件的另一个选项(欢呼另一个笨蛋).
操纵
厄尼的想法似乎可行,我将按如下方式实施.
假设linesreadfromfile是使用csv.reader读取的列表列表,即每个列表元素是一个值列表,对应于文件中该行的分隔条目,
finaldict = {}
for row in linesreadfromfile:
if finaldict.has_key(row[5]):
if finaldict[row[5]][3] > row[3]:
finaldict[row[5]] = row
else:
finaldict[row[5]] = row
标签:python,excel 来源: https://codeday.me/bug/20190826/1727535.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。