当我不想让Pandas将字符串转换为浮点数时,Pandas会尝试将其转换为浮点数

2024-05-15 21:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们。我正在写一段代码,生成氨基酸序列。它有两个相同的循环-第一个循环工作正常,而另一个循环给出“ValueError:无法将字符串转换为浮点:“”。现在,我试着调试它,将所有内容都设置为字符串,但仍然不起作用。代码如下:

from rdkit import Chem
import pandas as pd
import numpy as np
from rdkit.Chem import AllChem
import itertools

G='NCC(=O)O'
A='NC(C)C(=O)O'
V='NC(C(C)C)C(=O)O'
I='NC(C(C)CC)C(=O)O'
S='NC(CO)C(=O)O'
T='NC(C(O)C)C(=O)O'
C='NC(CS)C(=O)O'
U='NC(C[SeH])C(=O)O'
M='NC(CCSC)C(=O)O'
P='N1C(CCC1)C(=O)O'
K='NC(CCCCN)C(=O)O'
D='NC(CC(=O)O)C(=O)O'
E='NC(CCC(=O)O)C(=O)O'
N='NC(CC(=O)N)C(=O)O'
Q='NC(CCC(=O)O)C(=O)O'
H='NC(Cc1nc[nH]c1)C(=O)O'
F='NC(Cc1ccccc1)C(=O)O'
Y='NC(Cc1ccc(O)cc1)C(=O)O'
R='NC(CCCNC(=N)N)C(=O)O'
W='NC(Cc1c[nH]c2ccccc12)C(=O)O'

peptides=pd.DataFrame({'FASTA': [],'SMILES': []})
peptides['SMILES'].astype(str)

aminoAcidsFASTA=['G','A','V','I','S','T','C','U','M','P','K','D','E','N','Q','H','F','Y','R','W']
aminoAcidsSMILES=[G,A,V,I,S,T,C,U,M,P,K,D,E,N,Q,H,F,Y,R,W]
j=0
g=0
for i in range(0, 3):
    for fasta in itertools.permutations(aminoAcidsFASTA, i):
        fasta=''.join(fasta)
        peptides.at[j, 'FASTA']=fasta
        j=j+1
    for smiles in itertools.permutations(aminoAcidsSMILES, i):
        smiles=''.join(smiles)
        peptides.at[g, 'SMILES']=smiles
        g=g+1
peptides

Tags: 字符串代码infromimportforfastacc
1条回答
网友
1楼 · 发布于 2024-05-15 21:24:36

第一次向"FASTA"列添加值时,pandas将"SMILES"列填充为nan,这是一个浮点值。从那以后,pandas认为列应该只包含浮点数,这会导致错误

因为您处理的是字符串,所以在创建数据帧时只需添加以下关键字参数。现在,您的代码应该运行良好:

peptides=pd.DataFrame({'FASTA': [],'SMILES': []}, dtype='object')

如果您有任何其他问题,请告知我们

相关问题 更多 >