[英]Pandas GroupBy frequency of values
我有這組樣本數據
STATE CAPSULES LIQUID TABLETS
Alabama NaN Prescription OTC
Georgia Prescription NaN OTC
Texas OTC OTC NaN
Texas Prescription NaN NaN
Florida NaN Prescription OTC
Georgia OTC Prescription Prescription
Texas Prescription NaN OTC
Alabama NaN OTC OTC
Georgia OTC NaN NaN
我嘗試了多個 groupby 配置以獲得以下理想結果:
State capsules_OTC capsules_prescription liquid_OTC liquid_prescription tablets_OTC tablets_prescription
Alabama 0 0 0 0 0 0
Florida 0 0 0 0 0 0
Georgia 1 1 1 1 1 1
Texas 1 2 2 2 2 2
例如,試過這個
df.groupby(['STATE','CAPSULES'])
嘗試至少讓第一列發生爭執,沒有骰子。 也許這不是一個簡單的答案,但我想我遺漏了一些簡單的 groupby 和 count() 或其他一些應用函數?
將pd.get_dummies
與groupby
和sum
:
pd.get_dummies(df, columns=['CAPSULES', 'LIQUID', 'TABLETS'])\
.groupby('STATE', as_index=False).sum()
輸出:
STATE CAPSULES_OTC CAPSULES_Prescription LIQUID_OTC LIQUID_Prescription TABLETS_OTC TABLETS_Prescription
0 Alabama 0 0 1 1 2 0
1 Florida 0 0 0 1 1 0
2 Georgia 2 1 0 1 1 1
3 Texas 1 2 1 0 1 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.