[英]Split data frame into multiple data frames based on unique column combinations
[英]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
我想做的是基於T1
和T2
(基本上是從第二列開始的所有列)進行分組。 請注意,列名稱不遵循任何模式,並且可以多於兩個。
我希望得到的最終結果是:
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.