Nab*_*zir 3 python pivot-table dataframe pandas
我有分数数据,我想按自定义分数进行分组.
Id Date Score
1 2018-01-01 56
2 2018-01-01 72
3 2018-01-01 91
4 2018-01-01 67
5 2018-01-01 65
6 2018-01-02 75
7 2018-01-02 72
8 2018-01-02 91
9 2018-01-02 82
10 2018-01-02 81
Run Code Online (Sandbox Code Playgroud)
这是我的预期
Date <60 60-79 80-100
2018-01-01 1 3 1
2018-01-02 0 2 3
Run Code Online (Sandbox Code Playgroud)
我做的是
result = pd.crosstab(df.Date, df.Score)
result['<60'] = result['1']+ ... + result['59']
result['60-79'] = result['60']+ ... + result['79']
result['80-100'] = result['80']+ ... + result['100']
Run Code Online (Sandbox Code Playgroud)
然后我应该删掉很多专栏
有更好的方法吗?
bins = [-np.inf, 60, 79, 100]
labels = ['<60','60-79','80-100']
df = (df.groupby([df['Date'], pd.cut(df['Score'], bins=bins, labels=labels)])
.size()
.unstack(fill_value=0))
print (df)
Score <60 60-79 80-100
Date
2018-01-01 1 3 1
2018-01-02 0 2 3
Run Code Online (Sandbox Code Playgroud)