Python 3.x 基于列标题的python分组依据

Python 3.x 基于列标题的python分组依据,python-3.x,pandas,csv,dataframe,pandas-groupby,Python 3.x,Pandas,Csv,Dataframe,Pandas Groupby,我的csv文件有744行186列,格式如下: Label 1 1 0 0 1 TaxID P_ERR161 P_ERR162 P_ERR163 P_ERR164 P_ERR165 333046 0.05 0 22.33 0.06 7.32 1049 0.03 0 0.04 0.01 0.02 3370

我的csv文件有744行186列,格式如下:

 Label   1          1         0         0         1
 TaxID   P_ERR161   P_ERR162  P_ERR163  P_ERR164  P_ERR165 
 333046  0.05       0         22.33     0.06      7.32
 1049    0.03       0         0.04      0.01      0.02
 337090  0.01       0         9.79      45.88     3.99   
 288681  3.6        0         1.03      251.01    8.11
我需要根据标签0和1将行值分组到两个单独的数据帧中。我看过其他帖子,但找不到解决问题的方法。我需要这个来做统计分析,比如t检验,wilcoxon秩和检验

我试过这个:

df = pd.read_csv('final_out_transposed.csv')
case = df.where(df.Label == 1).dropna()['SRA ID']
ctrl = df.where(df.Label == 2).dropna()['SRA ID']
但这对我没有帮助。任何帮助都会非常有用


提前谢谢

我想您需要
csv
中第二行和第三行的
多索引
的参数
标题
,然后通过以下方式查看LCT:


你能提供一份报告吗?具体来说,如果您可以打印
df.head(5)
,这将非常有用。这样我们就可以很容易地测试我们作为答案提供的代码。@jp_data_analysis当然我会编辑这个问题。所以你想要两个数据帧,一个只有0列,一个只有1列,对吗?这通常称为“切片”,而不是“分组”——这是为我们根据字段/条件聚合数据时保留的。我认为您需要的是一个多索引:请参阅。@jp_data_analysis yes两个不同的数据帧,一个是列标题0,另一个是列标题1。很抱歉,我对python不太熟悉,因此它不是很好。@jezreal我如何才能为以下内容获取186行:
MultiIndex(levels=['0','1','1','P_ERR161','P_ERR162','P_ERR163','P_ERR164','P_ERR165']]标签=[[1,1,0,0,1],[0,1,2,3,4],
您的数据是机密的吗?@jezreal不,不,非常感谢您的帮助。:)我将检查它对meHi的工作原理,实际上问题是Pandas DataFrame的
xs
方法创建的对象看起来像二维数组。当传递到
ttest\u ind
时,必须将其展平,使其看起来像一维数组。熊猫对象的
values
属性提供一个numpy数组,而
ravel()
方法将数组展平为一维。
df  = pd.read_csv('final_out_transposed.csv', header=[1,2], index_col=[0])
#print (df.head())


case = df.xs('0', axis=1, level=0).dropna()
#print (case.head())

ctrl = df.xs('1', axis=1, level=0).dropna()
#print (ctrl.head())