【问题标题】:ValueError: Unable to coerce list of <class 'pandas.core.series.Series'> to Series/DataFrameValueError:无法将 <class 'pandas.core.series.Series'> 列表强制转换为 Series/DataFrame
【发布时间】:2021-05-25 20:01:41
【问题描述】:

我正在使用 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)

错误快照:

【问题讨论】:

  • 我很乐意为代码中的任何行提供任何解释。如果您熟悉上述 pandas 错误,请帮我弄清楚:)

标签: python pandas numpy data-structures biopython


【解决方案1】:

谢谢大家。我已经解决了这个问题。如果有人遇到类似的错误,这里是解决方案: 在我的情况下,错误是因为这三个变量:

x_o = clr_o.x_coord
y_o = clr_o.y_coord
z_o = clr_o.z_coord

正在返回一个熊猫系列,其中包括索引号和值。现在,当我调用 biopandas 的 distance_df 函数时,它将 xyz 坐标作为一个列表,但我传递的是一个熊猫系列。我在我的案例中发现的最简单的方法是添加仅提供单个输出的浮点数,如下所示:

x_o = float(clr_o.x_coord)
y_o = float(clr_o.y_coord)
z_o = float(clr_o.z_coord)

谢谢

【讨论】:

  • 酷!只需接受您自己的答案,在答案下方标记 V 形标签即可。不知道 biopandas 甚至在这里存在其他感兴趣的人的链接rasbt.github.io/biopandas
猜你喜欢
  • 2020-03-08
  • 2018-04-19
  • 2021-05-18
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多