Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Blast解析:AttributeError:';浮动';对象没有属性';拆分';_Python_String_Pandas - Fatal编程技术网

Python Blast解析:AttributeError:';浮动';对象没有属性';拆分';

Python Blast解析:AttributeError:';浮动';对象没有属性';拆分';,python,string,pandas,Python,String,Pandas,我正在尝试编写一个脚本来解析Ncbi BLAST报告。导致此错误的列是基因组GI编号 例如LT697097.1 末尾有一个小数点。当我试着拆分它并只得到GI号时,我得到了这个错误 告诉我这个错误是因为split假设它是一个浮点值 因此,我使用来自的建议将pandas列作为字符串导入 我使用的是列编号,因为报表不会自动包含列名 import pandas as pd df = pd.read_csv("out.txt", sep="\t", dtype=object, names = ['

我正在尝试编写一个脚本来解析Ncbi BLAST报告。导致此错误的列是基因组GI编号

例如LT697097.1

末尾有一个小数点。当我试着拆分它并只得到GI号时,我得到了这个错误

告诉我这个错误是因为split假设它是一个浮点值

因此,我使用来自的建议将pandas列作为字符串导入

我使用的是列编号,因为报表不会自动包含列名

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)

这将无法读取列,并且只有columns names属性作为输出值

你能告诉我我的方法哪里出了问题吗?

我想你需要选择第一个列表,它与NaN一起工作非常好。另一个问题应该是某些值没有

df['subject acc.ver'] = df['subject acc.ver'].str.split('.',1).str[0]
样本:

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
我想你需要选择第一个列表,它与NaN一起工作非常好。另一个问题应该是某些值没有

df['subject acc.ver'] = df['subject acc.ver'].str.split('.',1).str[0]
样本:

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