簡體   English   中英

如何基於列將數據幀拆分為多個數據幀

[英]How to split a data frame into multiple data frames based on columns

我有以下數據框:

import pandas as pd
df = pd.DataFrame( { 
    "Name" : ["gene1","gene2","gene3","gene4"] , 
    "T1" : [0.33,1,3,4],
    "T2" : [1.23,2.1,3.5,5.0], } )

看起來像這樣:

In [30]: df
Out[30]:
    Name    T1    T2
0  gene1  0.33  1.23
1  gene2  1.00  2.10
2  gene3  3.00  3.50
3  gene4  4.00  5.00

我想做的是基於T1T2 (基本上是從第二列開始的所有列)進行分組。 請注意,列名稱不遵循任何模式,並且可以多於兩個。

我希望得到的最終結果是:

T1
    Name    T1   
0  gene1  0.33  
1  gene2  1.00  
2  gene3  3.00  
3  gene4  4.00 

T2
    Name    T2
0  gene1    1.23
1  gene2    2.10
2  gene3    3.50
3  gene4    5.00

我該如何實現?

我嘗試了這個,但是沒有給出我想要的:

tlist = list(df.columns[1:])
for dft in df.groupby(tlist,axis=1):
    print df

您可以使用pd.melt()到達那里:

melted = pd.melt(df, id_vars='Name', var_name='t_col')

for t_col, sub_df in melted.groupby('t_col'):
    print(sub_df)

    Name t_col  value
0  gene1    T1   0.33
1  gene2    T1   1.00
2  gene3    T1   3.00
3  gene4    T1   4.00
    Name t_col  value
4  gene1    T2   1.23
5  gene2    T2   2.10
6  gene3    T2   3.50
7  gene4    T2   5.00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM