簡體   English   中英

如何在 pandas 中的 pivot 表 function 中聚合索引值?

[英]How to aggregate index values in pivot table function in pandas?

我是 Python 的新手,非常感謝您的幫助。

我使用數據透視表 function 創建了 pivot 表: df2=df[["group_name"," revenue ","RPM"]] df3=df2.pivot_table(index="RPM",columns="group_name",aggfunc="count")

RPM 索引包含從 0 到 15 的值 - 例如 - 0.03,0.54,0.15,5.62,13,45 我想將索引值分組到特定的間隔,所以它就像 0-1,1-2。 ..

revenue
group_name  A   B
RPM     
0.12    1.0 NaN
0.13    1.0 NaN
0.14    NaN 1.0
0.15    1.0 NaN
0.17    1.0 2.0
... ... ...
10.09   NaN 1.0
10.15   NaN 1.0
10.22   NaN 1.0
11.76   NaN 1.0
14.04   NaN 1.0

是否可以在 Python 中執行此操作?

謝謝!

假設您的數據框是這樣的:

np.random.seed(111)
df = pd.DataFrame({"group_name":np.random.randint(0,3,100),
                  "revenue":np.random.uniform(0,10,100),
                  "RPM":np.random.uniform(0,20,100)})

您可以定義邊界以剪切列:

br = np.arange(21)

然后當您使用 pivot 時,您提供離散列而不是實際列作為索引:

df.pivot_table(index=pd.cut(df.RPM,br),columns="group_name",values="revenue",aggfunc="count")

group_name  0   1   2
RPM         
(0, 1]      NaN 3.0 2.0
(1, 2]      NaN NaN 3.0
(2, 3]      2.0 NaN 1.0
(3, 4]      5.0 1.0 1.0
(4, 5]      3.0 3.0 5.0
(5, 6]      2.0 NaN NaN
(6, 7]      2.0 1.0 1.0
(7, 8]      2.0 1.0 1.0
(8, 9]      2.0 5.0 1.0
(9, 10]     2.0 4.0 2.0
(10, 11]    1.0 2.0 3.0
(11, 12]    5.0 3.0 NaN
(12, 13]    2.0 2.0 NaN
(13, 14]    1.0 NaN NaN
(14, 15]    NaN 1.0 1.0
(15, 16]    1.0 3.0 2.0
(16, 17]    1.0 1.0 3.0
(17, 18]    3.0 NaN 1.0
(18, 19]    2.0 2.0 2.0
(19, 20]    2.0 1.0 NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM