Dav*_*voz 4 python pivot-table dataframe pandas
我正在尝试做一个看似非常简单的任务.给定一个数据帧:
daf = pd.DataFrame({'co':['g','r','b','r','g','r','b','g'],'sh':[ 'C', 'S', 'R', 'R', 'R', 'S', 'C', 'R']})
Run Code Online (Sandbox Code Playgroud)co sh 0 g c 1 r s 2 b r 3 r r 4 g r 5 r s 6 b c 7 g r
我想用'co'和'sh'值的唯一组合来计算记录的数量,并输出为包含行['g','r','b']和列['c'的表格, 'S', 'R']
Run Code Online (Sandbox Code Playgroud)c s r g 1 0 2 r 0 1 1 b 1 0 1
可以使用pivot_table完成吗?
谢谢,
它可以更简单地使用pandas.crosstab:
>>> pandas.crosstab(d.co, d.sh)
sh c r s
co
b 1 1 0
g 1 2 0
r 0 1 2
Run Code Online (Sandbox Code Playgroud)
你可以使用pivot_table,但它会给你NaN而不是0表示缺少组合.您需要指定len为聚合函数:
>>> d.pivot_table(index='co', columns='sh', aggfunc=len)
sh c r s
co
b 1 1 NaN
g 1 2 NaN
r NaN 1 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2310 次 |
| 最近记录: |