我有下面的 DataFrame 并希望找到每列的y和的計數:n
| ID | 變數1 | 變數2 |
|---|---|---|
| 1 | 是的 | |
| 2 | n | 是的 |
| 3 | 是的 | n |
| 4 | 是的 | n |
| 5 | 是的 |
結果是這樣的:
| var1_N | var2_N | |
|---|---|---|
| 是的 | 3 | 2 |
| n | 1 | 2 |
我使用transform了函式,但想知道有沒有更好的方法來獲得結果。謝謝!
uj5u.com熱心網友回復:
您可以value_counts使用方法對所有需要計數的列執行操作apply,結果將自動加入索引(或您的情況下的 var 值):
df.filter(like='var').apply(lambda s: s.value_counts())
var1 var2
y 3 2
n 1 2
或者pd.value_counts直接使用:
df.filter(like='var').apply(pd.value_counts)
var1 var2
y 3 2
n 1 2
uj5u.com熱心網友回復:
您可以使用melt扁平化資料框,然后使用value_counts和unstack變數列:
>>> df.melt('ID').value_counts(['variable', 'value']).unstack('variable')
variable var1 var2
value
n 1 2
y 3 2
您可以洗掉索引和列名:通過附加 ``
輸出:
>>> df.melt('ID').value_counts(['variable', 'value']).unstack('variable') \
.rename_axis(index=None, columns=None)
var1 var2
n 1 2
y 3 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424746.html
標籤:Python 熊猫 熊猫-groupby
下一篇:從csv檔案聚合資料
