如何将两个数据框列合并为一列
How to melt two dataframe columns into one column
我有这个数据框:
df = pd.DataFrame({'Gene': ['419', '1036', '1167', '1629'],
'Myob': [0.261, 1.010, -0.534, 1.412],
'Myob_Ind': [0.901, 0.525, 2.588, 1.825],
'Cluster': [0, 0, 0, 0]})
看起来像:
Gene Myob Myob_Ind Cluster
0 419 0.261 0.901 0
1 1036 1.010 0.525 0
2 1167 -0.534 2.588 0
3 1629 1.412 1.825 0
我想重塑它,使其看起来像这样:
Gene Z-Scores Cell Lines Cluster
0 419 0.261 Myob 0
1 419 0.901 Myob_Ind 0
2 1036 1.010 Myob 0
3 1036 0.525 Myob_Ind 0
4 1167 -0.534 Myob 0
5 1167 2.588 Myob_Ind 0
6 1629 1.412 Myob 0
7 1629 1.825 Myob_Ind 0
我的目标是添加额外的细胞系,例如来自中性粒细胞或脂肪的细胞系,并使用箱线图绘制 z 分数,但我需要这种形式的数据才能做到这一点。 genes/cell 行的顺序无关紧要,只要它们与各自的 z 分数匹配即可。我在使用 pd.melt 和 pd.concat 时遇到问题,这让我不确定它们是否正确使用。
与pd.melt
:
pd.melt(df, id_vars=['Gene', 'Cluster'], var_name='Cell Lines', value_name='Z-Score')
# Gene Cluster Cell Lines Z-Score
#0 419 0 Myob 0.261
#1 1036 0 Myob 1.010
#2 1167 0 Myob -0.534
#3 1629 0 Myob 1.412
#4 419 0 Myob_Ind 0.901
#5 1036 0 Myob_Ind 0.525
#6 1167 0 Myob_Ind 2.588
#7 1629 0 Myob_Ind 1.825
我按 Gene 添加了排序
results=pd.melt(df,id_vars=['Gene','Cluster'],var_name='Cell Lines',value_name='Z-Score')
print(results.sort_values(by='Gene',ascending=[False]))
我有这个数据框:
df = pd.DataFrame({'Gene': ['419', '1036', '1167', '1629'],
'Myob': [0.261, 1.010, -0.534, 1.412],
'Myob_Ind': [0.901, 0.525, 2.588, 1.825],
'Cluster': [0, 0, 0, 0]})
看起来像:
Gene Myob Myob_Ind Cluster
0 419 0.261 0.901 0
1 1036 1.010 0.525 0
2 1167 -0.534 2.588 0
3 1629 1.412 1.825 0
我想重塑它,使其看起来像这样:
Gene Z-Scores Cell Lines Cluster
0 419 0.261 Myob 0
1 419 0.901 Myob_Ind 0
2 1036 1.010 Myob 0
3 1036 0.525 Myob_Ind 0
4 1167 -0.534 Myob 0
5 1167 2.588 Myob_Ind 0
6 1629 1.412 Myob 0
7 1629 1.825 Myob_Ind 0
我的目标是添加额外的细胞系,例如来自中性粒细胞或脂肪的细胞系,并使用箱线图绘制 z 分数,但我需要这种形式的数据才能做到这一点。 genes/cell 行的顺序无关紧要,只要它们与各自的 z 分数匹配即可。我在使用 pd.melt 和 pd.concat 时遇到问题,这让我不确定它们是否正确使用。
与pd.melt
:
pd.melt(df, id_vars=['Gene', 'Cluster'], var_name='Cell Lines', value_name='Z-Score')
# Gene Cluster Cell Lines Z-Score
#0 419 0 Myob 0.261
#1 1036 0 Myob 1.010
#2 1167 0 Myob -0.534
#3 1629 0 Myob 1.412
#4 419 0 Myob_Ind 0.901
#5 1036 0 Myob_Ind 0.525
#6 1167 0 Myob_Ind 2.588
#7 1629 0 Myob_Ind 1.825
我按 Gene 添加了排序
results=pd.melt(df,id_vars=['Gene','Cluster'],var_name='Cell Lines',value_name='Z-Score')
print(results.sort_values(by='Gene',ascending=[False]))