2
我有一個df與訂單id和渠道。熊貓groupby和計數百分比,同時保持NaNs
all_data_filtered = all_data[["order_id", "user_channel"]]
all_data_filtered.head(100).to_dict()
給出了這樣的字典有人能夠與pd.DataFrame(dict_bellow)
輕鬆地複製它:
{'order_id': {0: nan,
1: nan,
2: nan,
3: nan,
4: nan,
5: nan,
6: nan,
7: nan,
8: nan,
9: nan,
10: nan,
11: nan,
12: nan,
13: 7026578.0,
14: 7026584.0,
15: 7026890.0,
16: 7026959.0,
17: 7027028.0,
18: 7027109.0,
19: 7027175.0,
20: 7027193.0,
21: nan,
22: nan,
23: nan,
24: nan,
25: nan,
26: nan,
27: nan,
28: nan,
29: nan,
30: nan,
31: 7026635.0,
32: 7026842.0,
33: nan,
34: nan,
35: nan,
36: nan,
37: nan,
38: nan,
39: nan,
40: nan,
41: nan,
42: nan,
43: nan,
44: nan,
45: 7026923.0,
46: nan,
47: nan,
48: nan,
49: nan,
50: nan,
51: nan,
52: nan,
53: nan,
54: nan,
55: nan,
56: 7026662.0,
57: 7026677.0,
58: nan,
59: nan,
60: 7722035.0,
61: nan,
62: 7026686.0,
63: 7026695.0,
64: nan,
65: 7028045.0,
66: 7026698.0,
67: 7026701.0,
68: 7026740.0,
69: 7026743.0,
70: 7033025.0,
71: nan,
72: nan,
73: nan,
74: nan,
75: 7584236.0,
76: 7584395.0,
77: nan,
78: nan,
79: nan,
80: nan,
81: nan,
82: nan,
83: nan,
84: nan,
85: 7026761.0,
86: 7027055.0,
87: 7026755.0,
88: 7026758.0,
89: 7027709.0,
90: nan,
91: nan,
92: nan,
93: nan,
94: nan,
95: 7026764.0,
96: 7026824.0,
97: 7033052.0,
98: 7033112.0,
99: 7033349.0},
'user_channel': {0: 1,
1: 2,
2: 3,
3: 1,
4: 3,
5: 3,
6: 1,
7: 3,
8: 4,
9: 1,
10: 4,
11: 2,
12: 3,
13: 3,
14: 3,
15: 3,
16: 3,
17: 3,
18: 3,
19: 3,
20: 3,
21: 3,
22: 1,
23: 1,
24: 3,
25: 1,
26: 1,
27: 1,
28: 1,
29: 3,
30: 1,
31: 3,
32: 3,
33: 3,
34: 1,
35: 3,
36: 3,
37: 2,
38: 2,
39: 3,
40: 3,
41: 1,
42: 1,
43: 2,
44: 5,
45: 5,
46: 3,
47: 2,
48: 3,
49: 3,
50: 3,
51: 1,
52: 1,
53: 3,
54: 3,
55: 3,
56: 3,
57: 3,
58: 1,
59: 1,
60: 6,
61: 3,
62: 3,
63: 3,
64: 3,
65: 3,
66: 4,
67: 4,
68: 4,
69: 4,
70: 4,
71: 3,
72: 3,
73: 1,
74: 1,
75: 3,
76: 3,
77: 3,
78: 3,
79: 3,
80: 1,
81: 3,
82: 3,
83: 4,
84: 3,
85: 3,
86: 3,
87: 4,
88: 4,
89: 4,
90: 1,
91: 3,
92: 3,
93: 5,
94: 3,
95: 3,
96: 3,
97: 3,
98: 3,
99: 3}}
這些都是個人的訂單。所以,我想將它們分組並計數:
all_data_filtered.groupby(["user_channel"]).agg(['count'])
這給這個因爲我知道通過通道3附帶的大部分訂單是有用的:
order_id
count
user_channel
1 391
2 211
3 1805
4 425
5 102
6 124
7 159
但這些排除來所有NaN(用戶通過頻道並沒有提交訂單)。因此,最終我可以獲得一些百分比:通過第3頻道,90%的用戶和10%的用戶下了一個訂單,這使得所有訂單的40%。如何納入NaN以便我可以計算百分比?
短'df.groupby( 'user_channel')。大小()' – piRSquared