我正在嘗試分析我進行的一項調查的結果。每個問題都有可能回答的復選框,用戶可以根據自己的喜好選擇多或少。
資料看起來像這樣
df = pd.DataFrame({
'Result': ['Blue, Yellow, Red',
'Red',
'Green, Blue']
})
| 結果 |
|---|
| 藍色、黃色、紅色 |
| 紅色的 |
| 綠,藍 |
最終,我想知道每個選項(顏色)被選擇了多少次,但在這個階段使用會告訴我每個確切value_counts()選擇的次數(在本例中回傳 1、1、1)。
我想我需要讓它看起來像這樣:
| 結果 |
|---|
| 藍色 |
| 黃色的 |
| 紅色的 |
| 紅色的 |
| 綠色的 |
| 藍色 |
所以我需要用逗號分割每個索引,str.split(',')但我不能保證會選擇多少個選項。
到目前為止,我發現的所有內容都涉及將一列拆分為多列,但我想拆分一列并將結果堆疊成一列。
uj5u.com熱心網友回復:
你可以嘗試這樣的事情:
df.Result.str.split(', ', expand = True).stack().reset_index(drop = True).value_counts()
Blue 2
Red 2
Yellow 1
Green 1
dtype: int64
uj5u.com熱心網友回復:
你也可以使用str.split explode:value_counts
out = df['Result'].str.split(', ').explode().value_counts()
輸出:
Blue 2
Red 2
Yellow 1
Green 1
Name: Result, dtype: int64
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451433.html
上一篇:用索引值替換列的值
