Python 3.x 基于列标题的python分组依据
我的csv文件有744行186列,格式如下: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
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())