我有df第一張照片所示的資料框。綠色行是將 Condition1 列為“是”的行。黃色行是具有兩列Condition1且Condition2為“是”的行。
問題: 請參閱第二張照片,該照片顯示了所需的輸出,這是一個新的資料框,其中:
(1)。“Count_Condition1”列包含綠色行出現的次數。'Count_Condition_1&2' 列包含黃色行出現的次數。
(2)。除了(1)之外,我想將“Vol”列拆分為不同的范圍(見第二張照片),并相應地顯示計數。
例如,當 Condition1='Yes' 并且資料范圍Vol在 0.2 到 0.2999 之間時,有 3 個實體。


uj5u.com熱心網友回復:
用于cut合并列Vol和計數匹配Yes值創建輔助列,用于計數的最后一個聚合布林值True:
bins=[-np.inf, 0.2, 0.3, 0.4, 0.5, np.inf]
labels = [ f'{a} to {round(b-0.0001, 4)}'.replace('-inf to ', '<=').replace(' to inf', '')
for a, b in zip(bins, bins[1:])]
labels[-1] = '>=' labels[-1]
s1 = df['Condition1'].eq('Yes')
s2 = df['Condition2'].eq('Yes')
g = pd.cut(df['Vol'], bins = bins, right = False, labels = labels)
df1 = (df.assign(Count_Condition1 = s1, Count_Condition_1_2 = s1 & s2)
.groupby(g)[['Count_Condition1','Count_Condition_1_2']]
.sum())
print (df1)
Count_Condition1 Count_Condition_1_2
Vol
<=0.1999 2 1
0.2 to 0.2999 3 1
0.3 to 0.3999 1 1
0.4 to 0.4999 1 0
>=0.5 2 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/478538.html
