ValueError: Unable to coerce list of <class 'pandas.core.series.Series'> to Series/DataFrame
ValueError: Unable to coerce list of <class 'pandas.core.series.Series'> to Series/DataFrame
我正在使用 biopandas 中的 distance_df 函数来计算一堆原子形成参考点的距离。该函数工作正常,但我在代码的一部分中收到此值错误。基本上,我将 CLR 分成 4 个部分,以检查每个部分与相互作用氨基酸的距离。一切正常,但代码卡在最后一行,一个月前就开始工作了,biopandas 有更新吗?它更多的是生物学,所以如果有人对代码有任何疑问,我很乐意清除它们。我从来没有遇到过这个错误,也不知道该怎么办。提前谢谢你:)
split_clr = []
path = "/media/New Volume/2RH1.pdb"
ppdb = PandasPdb().read_pdb(path)
atom_df = ppdb.df['ATOM']
hetatm = ppdb.df['HETATM'][(ppdb.df['HETATM']['residue_name']=="CLR")]
chains = np.unique(hetatm.chain_id)
residues = np.unique(hetatm.residue_number)
for chain in chains:
for res in range(len(residues)):
data = hetatm[(hetatm['residue_number']==residues[res])&(hetatm['chain_id']==chain)]
if len(data) !=0:
split_clr.append(data)
for nu in range(len(split_clr)):
upper = []
middle1 = []
middle2 = []
lower = []
# upper part of CLR
clr_o = split_clr[nu][split_clr[nu]['atom_name']=='O1']
x_o = clr_o.x_coord
y_o = clr_o.y_coord
z_o = clr_o.z_coord
reference_point=x_o,y_o,z_o
dista = ppdb.distance_df(atom_df, xyz=reference_point)
错误快照:
谢谢大家。我已经解决了这个问题。如果有人遇到类似的错误,这里是解决方案:
在我的例子中,错误是因为这三个变量:
x_o = clr_o.x_coord
y_o = clr_o.y_coord
z_o = clr_o.z_coord
正在返回一个 pandas 系列,其中包括索引号和值。现在,当我调用 biopandas 的 distance_df 函数时,它将 xyz 坐标作为列表,但我传递的是 pandas 系列。在我的例子中,我发现的最简单的方法是添加 float,它只提供一个输出,如下所示:
x_o = float(clr_o.x_coord)
y_o = float(clr_o.y_coord)
z_o = float(clr_o.z_coord)
谢谢
我正在使用 biopandas 中的 distance_df 函数来计算一堆原子形成参考点的距离。该函数工作正常,但我在代码的一部分中收到此值错误。基本上,我将 CLR 分成 4 个部分,以检查每个部分与相互作用氨基酸的距离。一切正常,但代码卡在最后一行,一个月前就开始工作了,biopandas 有更新吗?它更多的是生物学,所以如果有人对代码有任何疑问,我很乐意清除它们。我从来没有遇到过这个错误,也不知道该怎么办。提前谢谢你:)
split_clr = []
path = "/media/New Volume/2RH1.pdb"
ppdb = PandasPdb().read_pdb(path)
atom_df = ppdb.df['ATOM']
hetatm = ppdb.df['HETATM'][(ppdb.df['HETATM']['residue_name']=="CLR")]
chains = np.unique(hetatm.chain_id)
residues = np.unique(hetatm.residue_number)
for chain in chains:
for res in range(len(residues)):
data = hetatm[(hetatm['residue_number']==residues[res])&(hetatm['chain_id']==chain)]
if len(data) !=0:
split_clr.append(data)
for nu in range(len(split_clr)):
upper = []
middle1 = []
middle2 = []
lower = []
# upper part of CLR
clr_o = split_clr[nu][split_clr[nu]['atom_name']=='O1']
x_o = clr_o.x_coord
y_o = clr_o.y_coord
z_o = clr_o.z_coord
reference_point=x_o,y_o,z_o
dista = ppdb.distance_df(atom_df, xyz=reference_point)
错误快照:
谢谢大家。我已经解决了这个问题。如果有人遇到类似的错误,这里是解决方案: 在我的例子中,错误是因为这三个变量:
x_o = clr_o.x_coord
y_o = clr_o.y_coord
z_o = clr_o.z_coord
正在返回一个 pandas 系列,其中包括索引号和值。现在,当我调用 biopandas 的 distance_df 函数时,它将 xyz 坐标作为列表,但我传递的是 pandas 系列。在我的例子中,我发现的最简单的方法是添加 float,它只提供一个输出,如下所示:
x_o = float(clr_o.x_coord)
y_o = float(clr_o.y_coord)
z_o = float(clr_o.z_coord)
谢谢