爲了更好地解決問題,我們假設我有一家店鋪有3位獨特顧客,我的數據框包含每位顧客購買的平日,姓名和付款價格。爲零組合後的唯一多指標值的組合填充零值
name price weekday
0 Paul 18.44 0
1 Micky 0.70 0
2 Sarah 0.59 0
3 Sarah 0.27 1
4 Paul 3.45 2
5 Sarah 14.03 2
6 Paul 17.21 3
7 Micky 5.35 3
8 Sarah 0.49 4
9 Micky 17.00 4
10 Paul 2.62 4
11 Micky 17.61 5
12 Micky 10.63 6
我想獲得的信息是每個獨立客戶每個工作日的平均價格。我經常做類似的情況是通過集團與和幾列,然後採取列的子集的平均水平。
df = df.groupby(['name','weekday']).sum()
price
name weekday
Micky 0 0.70
3 5.35
4 17.00
5 17.61
6 10.63
Paul 0 18.44
2 3.45
3 17.21
4 2.62
Sarah 0 0.59
1 0.27
2 14.03
4 0.49
df = df.groupby(['weekday']).mean()
price
weekday
0 6.576667
1 0.270000
2 8.740000
3 11.280000
4 6.703333
5 17.610000
6 10.630000
當然,這隻適用於所有我的獨特客戶每天至少有一次購買。 有一種優雅的方式來獲得具有第一GROUPBY後沒有和唯一索引值之間的所有組合零值?
我的解決方案到目前爲止都是爲了重新索引一個多索引,我通過分組列的獨特值或者unstack-fillna-stack的組合創建了索引,但這兩種解決方案都不能滿足我。
感謝您的幫助!