【发布时间】:2018-07-10 10:22:43
【问题描述】:
我有 744 行 186 列的 csv 文件,格式如下:
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']
但这对我没有帮助。任何帮助都会非常有用。
提前致谢。
【问题讨论】:
-
你能提供一个minimal reproducible example吗?具体来说,如果您可以打印
df.head(5),那将非常有帮助。这样我们就可以轻松地测试我们作为答案提供的代码。 -
@jp_data_analysis 确定我会编辑问题。
-
所以你想要 2 个数据帧,一个只有 0 列,一个只有 1 列,对吗?这通常称为“切片”,而不是“分组”——这是为我们根据字段/标准聚合数据时保留的。
-
我认为您需要的是 MultiIndex:请参阅 pandas.pydata.org/pandas-docs/stable/…。
-
@jp_data_analysis 是的,有两个不同的数据框,一个带有列标题 0,另一个带有列标题 1。对不起,我是 python 新手,因此不太好。
标签: python-3.x pandas csv dataframe pandas-groupby