Roo*_*Roo 1 python pandas pandas-groupby
我有下面的数据框,想要找到每列的y计数:n
| ID | 变量1 | 变量2 |
|---|---|---|
| 1 | y | |
| 2 | n | y |
| 3 | y | n |
| 4 | y | n |
| 5 | y |
结果会是这样的:
| 变量1_N | 变量2_N | |
|---|---|---|
| y | 3 | 2 |
| n | 1 | 2 |
我使用了transform函数,但想知道是否有更好的方法来获得结果。谢谢!
您可以value_counts使用方法对需要计数的所有列进行操作apply,结果将自动连接到索引(或您的情况下的 var 值):
df.filter(like='var').apply(lambda s: s.value_counts())
var1 var2
y 3 2
n 1 2
Run Code Online (Sandbox Code Playgroud)
或者pd.value_counts直接使用:
df.filter(like='var').apply(pd.value_counts)
var1 var2
y 3 2
n 1 2
Run Code Online (Sandbox Code Playgroud)