1
這是一個示例數據幀df
:兩個相同代碼的樣品給出不同的結果
TIME VP_1 VP_2 VP_3 EVAL
20 3242 3244 3245 0
24 3244 3244 3242 0
30 3456 3244 3456 1
33 3456 3245 3242 0
45 3242 3456 3245 1
我計算平均每VP_*
TIME
當EVAL
等於0
和1
。
這是VP
的樣本輸出,等於3242
。
VP EVAL AVG_TIME
3242 0 25.67
3242 1 45
問題是,在我的真實數據集上應用以下兩個相同的代碼時,我得到了不同的結果。我不明白爲什麼會發生這種情況,以及哪種方法(這兩種方法)是正確的。
代碼#1
grouped = (pd.melt(df, id_vars=['EVAL', 'TIME'], value_name='VP')
.drop('variable', axis=1).drop_duplicates()
.groupby(['EVAL', 'VP']).agg({'TIME' : 'mean'})
.reset_index())
代碼#2
cols = ['VP', 'TIME', 'EVAL']
grouped = pd.melt(
df, ['TIME', 'EVAL'],
['VP_1', 'VP_2', 'VP_3'],
value_name='VP')[cols]
ab = grouped.groupby(['EVAL','VP']).agg({'TIME' : 'mean'}).reset_index()