Blast parsing: AttributeError: 'float' object has no attribute 'split'
我正在尝试编写一个脚本来解析NCBI爆炸报告。导致这个错误的列是基因组GI号。
例如LT697097.1
结尾有一个小数。当我尝试拆分它并获取gi编号时,我会得到这个错误。
django attributeError"float"对象没有属性"split",它告诉我此错误是因为split假定它是一个float值。
所以,我使用了pandas的建议,将csv作为字符串类型导入pandas列作为字符串。
我正在使用列号,因为报表不会自动具有列名称。
1 2 3 4 5 | import pandas as pd df = pd.read_csv("out.txt", sep="\t", dtype=object, names = ['query id','subject ids','query acc.ver','subject acc.ver','% identity','alignment length', 'mismatches','gap opens','q.start','q.end','s.start','s.end','evalue','bit score']) sacc = df['subject acc.ver'] sacc = [i.split('.',1)[0] for i in sacc] |
我仍然得到错误attributeError:'float'对象没有属性'split'。
然后,我尝试了AsType(str),正如在pandas中将列转换为字符串所建议的那样。
这将无法读取列,并且只将columns name属性作为输出值。
你能告诉我我的方法哪里出错吗?
我认为你需要
1 | df['subject acc.ver'] = df['subject acc.ver'].str.split('.',1).str[0] |
样品:
1 2 3 4 5 6 7 8 9 | df = pd.DataFrame({'subject acc.ver':['LT697097.1',np.nan,None, 'LT6']}) df['subject acc.ver'] = df['subject acc.ver'].str.split('.',1).str[0] print (df) subject acc.ver 0 LT697097 1 NaN 2 None 3 LT6 |
号