我正在编写一个脚本,在其中我生成了一个数组,该数组包含蛋白质,它们的因果相互作用体,随后的因果相互作用体等,直至用户指定的顺序(max_order)。最后一列必须是网络末端的最终蛋白质的净效应(激活或抑制)(因此,在任何中间列中添加都必须在此之前)。我的脚本如下:
#!/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
此刻,我提出了一些显然不起作用的内容:我已经解释了熊猫数据帧的常规数据排列中的{} set表示法,并试图将这些对象形成时加在一起。当然,该对象不喜欢被放置为集合对象。
我已经提到了许多像
这样的堆栈交换帖子但这更多是关于从csv读取数据文件并将其导入数据框
And this one,我认为它已经通过“添加前缀”解决了这个问题。最好将列命名为有用的名称,例如'%s order' %2
用于二阶蛋白质等。
也有this post的答案涉及args,尽管我不确定它在这里是否适用。至少,我不知道如何使用它。