我的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 test,wilcoxon rank sum test。
我试过这个:
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']
但这对我没有帮助。任何帮助都非常有用。
提前致谢。
答案 0 :(得分:1)
我认为header
中的第二行和第三行需要Multiindex
的参数csv
,然后选择xs
:
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())