我有一个看起来像这样的数据集:
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)
我是在正确的轨道上吗?还是有更简单的方法来做到这一点?
答案 0 :(得分:1)
首先包含filter
的{{1}}列,然后在_Counts
上groupby
这些列,并使用COVID POS
进行汇总,最后使用count
删除{{ 1}}部分从索引:
rstrip
_Counts