对可变列数使用数据框和/或添加列

2024-05-03 07:56:00 发布

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

我正在写一个脚本,在这个脚本中,我生成了一个数组,其中包含蛋白质、它们的因果相互作用子、随后的因果相互作用子等等,直到用户指定的顺序(最大顺序)。最后一个柱必须是网络末端的最终蛋白质的净效应(激活或抑制)(因此添加任何中间柱都必须在这个柱之前)。我的脚本看起来像:

#!/usr/bin/env python

from nthOrder import nthOrderData
import pandas as pd

def networkBuild(zeroth_list, zeroth_regulator_list, max_order):

    temp_array=zeroth_list
    temp_reg_list = zeroth_regulator_list

    for i in range(max_order):
        temp_array, temp_reg_list = nthOrderData(temp_array,temp_reg_list,i+1)


    #Make a set out of the orders to use as a pandas data frame
    datalist = ['Zeroth order': temp_array[:,0]]

    #
    for i in range(max_order -1):
        data= data + {'%s order' %(i+1) : temp_array[:,i+1]}

    data=  data + {'Net regulatory effect' : temp_reg_list}

    data={'Zeroth Order': temp_array[:,0],
          'First Order': temp_array[:,1],

          ...
          'Net regulatory affect': temp_reg_list}

    df=pd.DataFrame(data)

    return df

目前,我已经做了一些显然不起作用的事情:我解释了pandas数据帧中通常的数据排列中的{}集表示法,并尝试在形成这些对象时将它们添加到一起。当然,这个对象不喜欢作为一个集合对象

我提到了一些堆栈交换的帖子,比如

this one

但这更多的是从csv读取数据文件并导入数据帧

And this one我认为它通过添加前缀解决了这个问题。我更希望我的列被有效地命名,例如'%s order' %2表示二级蛋白质等

还有this post的答案涉及args,尽管我不确定它在这里是否适用。至少,我不知道该怎么用


Tags: 数据对象脚本pandasdata顺序order蛋白质