我有熊貓資料框,例如:
df =
col1 col2
23 75
25 78
22 120
我想指定 bin:0-100 和 100-200 并在這些 bin 中劃分 col2 計算其值計數,并對這些 bin 中的值求和 col1。
So:
df_output:
col2_range count col1_cum
0-100 2 48
100-200 1 22
獲取 col2_range 和 count 非常簡單:
import numpy as np
a = np.arange(0,200, 100)
bins = a.tolist()
counts = data['col1'].value_counts(bins=bins, sort=False)
不過,我如何對 col2 求和?
uj5u.com熱心網友回復:
IIUC,嘗試使用pd.cut這些垃圾箱創建垃圾箱和分組:
g = pd.cut(df['col2'],
bins=[0, 100, 200, 300, 400],
labels = ['0-99', '100-199', '200-299', '300-399'])
df.groupby(g, observed=True)['col1'].agg(['count','sum']).reset_index()
輸出:
col2 count sum
0 0-99 2 48
1 100-199 1 22
我想我誤讀了原帖:
g = pd.cut(df['col2'],
bins=[0,100,200,300,400],
labels = ['0-99', '100-199', '200-299', '300-399'])
df.groupby(g, observed=True).agg(col1_count=('col1','count'),
col2_sum=('col2','sum'),
col1_sum=('col1','sum')).reset_index()
輸出:
col2 col1_count col2_sum col1_sum
0 0-99 2 153 48
1 100-199 1 120 22
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/465170.html
標籤:python-3.x 熊猫 总计的
下一篇:如何根據熊貓中的條件洗掉一行?
