我有我的数据帧-
import pandas as pd
data = [['2233', 'A', 'FY21'], ['441', 'C', 'FY20'], ['6676', 'A', 'FY19'], ['033', 'C', 'FY16'],
['12', 'A', 'FY18'], ['91', 'B', 'FY15'], ['6676', 'C', 'FY10'], ['441', 'C', 'FY17'],
['12', 'A', 'FY14'], ['441', 'C', 'FY12']]
df = pd.DataFrame(data, columns = ('emp_id', 'category', 'year'))
df
emp_id category year
0 2233 A FY21
1 441 C FY20
2 6676 A FY19
3 033 C FY16
4 12 A FY18
5 91 B FY15
6 6676 C FY10
7 441 C FY17
8 12 A FY14
9 441 C FY12
因此,基本上我希望类别应创建为单独的列,即A、B和;C和每列应包含它们的计数
我想要什么作为我的输出-
emp_id A B C
0 2233 1
1 441 3
2 6676 1
3 033 1
4 12 2
5 91 1
6 6676 1
我所尝试的-
df['count'] = df.groupby(['emp_id'])['category'].transform('count')
df.drop_duplicates('emp_id', inplace = True)
df
emp_id category year count
0 2233 A FY21 1
1 441 C FY20 3
2 6676 A FY19 2
3 033 C FY16 1
4 12 A FY18 2
5 91 B FY15 1
请帮助我以python获得所需的输出
使用pd.crosstab:
输出:
注意:
如果输出中不需要
0
,可以使用:输出:
更新答案:
输出:
您还可以使用透视表:
相关问题 更多 >
编程相关推荐