我在python / pandas脚本中遇到了挑战。 我的数据是一个基因表达表,其组织如下:
基本上,索引0包含所研究的两个条件,而索引1包含有关在样本之间鉴定的基因的信息。
然后,我想生成一个索引紧靠在一起的表0,如下所示:
我尝试了很多事情,例如生成索引0的列表以加入索引1 ...
请救救我,伙计们!
谢谢
答案 0 :(得分:0)
假设第一列名称位于第0行,第二列名称位于第1行,请尝试以下操作:
df.columns = [f'{c1}.{c2}'.strip('.') for c1,c2 in zip(df.loc[0], df.loc[1])]
df.loc[2:]
应该是这样
答案 1 :(得分:0)
根据OP的评论,我更改了add_suffix
函数。
构造数据框
s1 = "Gene name,Description,Foldchange,Anova,Sample 1,Sample 2,Sample 3,Sample 4,Sample 5,Sample 6".split(",")
s2 = "HK1,Hexokinase,Infinity,0.05,1213,1353,14356,0,0,0".split(",")
df = pd.DataFrame(s2).T
df.columns = s1
定义一个功能,(根据不同情况更改功能)
def add_suffix(x):
try:
flag = int(x[-1])
except:
return x
if flag <= 4:
return x + '.Conditon1'
else:
return x + '.Condition2'
然后分配列
cols = df.columns.to_series().apply(add_suffix)
df.columns = cols