我将尝试整理一个已存在的Pandas数据框。
我有一个CSV文件,导入后看起来像下面这样(这是其简化版本):
trial_num trial_name unit_1_act unit_2_act unit_3_act unit_4_act
0 face 0.0 0.000000 0.272244 0.006428
1 face 0.0 0.000000 0.898450 0.000000
2 face 0.0 0.893845 0.000000 0.000000
3 scene 0.0 0.879367 0.000000 0.006312
4 scene 0.0 0.000000 0.000000 0.000000
在这个表格中,每一行都有多个观测值(每个“unit_X_act”是一个独立的观测值)。我想将它们分开,使每一行只有一个观测值。
换句话说,我希望改变这种形式,不使用“unit_1_act”,“unit_2_act”等列标题,而是使用以下内容:一个名为“unit number”的列,其值可以是“unit_1”,“unit_2”等,然后是一个名为“activity”的列,其值是以前在每个“unit_X_act”列下的值。
df.rename(columns=lambda x: x.replace('_act','') if '_act' in x else x).set_index(['trial_num','trial_name']).stack().reset_index().rename(columns={'level_2':'unit_number','0':'activity'})
;-) - MaxU - stand with Ukraine