按多列分组到一个表中

时间:2020-09-11 14:08:59

标签: python pandas dataframe

我有一个看起来像这样的数据集:

ID   HEMO_Counts   PLATE_Counts  ESR_Counts  CRP_Counts  COVID POS
0          23                       2          6          1
1                                                         0
2          54          23                                 0
3          234                      4          9          1
4                      75           6                     0
5          64                                 16          1

我想创建一个表,以每个实验室值(HEMO_Counts,PLATE_Counts,ESR_Counts,CRP_Counts)作为索引,并通过COVID POS将每个实验室值的计数分为两列

LAB     0    1
Hemo    1    3
Plate   2    0
ESR     1    2
CRP     0    3

我编写了以下代码,但输出不正确:

LABS_VAR=['HEMO_Counts','PLATE_Counts','ESR_Counts','CRP_Counts']

for lab in LABS_VAR:
    TEST=pd.pivot_table(df_merged2,values=[lab],  columns='Covid_pos', aggfunc=lambda x: len(x.unique()))
    TESTING = pd.DataFrame(TEST.to_records()).rename(columns={'index':'Lab'})
    DF=TESTING.append(TESTING)
    
Labs_Count_Results = pd.DataFrame(DF)

enter image description here

我是在正确的轨道上吗?还是有更简单的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

首先包含filter的{​​{1}}列,然后在_Countsgroupby这些列,并使用COVID POS进行汇总,最后使用count删除{{ 1}}部分从索引:

rstrip

_Counts