mea*_*ory 5 python group-by dataframe pandas
假设我有以下DataFrame
dic = {"Date": ["04-Jan-16", "04-Jan-16", "04-Jan-16", "05-Jan-16", "05-Jan-16"],
"Col": ['A', 'A', 'B', 'A', 'B']}
df = pd.DataFrame(dic)
df
Col Date
0 A 04-Jan-16
1 A 04-Jan-16
2 B 04-Jan-16
3 A 05-Jan-16
4 B 05-Jan-16
Run Code Online (Sandbox Code Playgroud)
我需要返回第二个DataFrame,它按日列出A和B的出现次数.即
A B
Date
04-Jan-16 2 1
05-Jan-16 1 1
Run Code Online (Sandbox Code Playgroud)
我有一种感觉这涉及"groupby",但我不太了解它以使其成为上面的格式^
您可以使用pandas内置来执行此操作pd.crosstab
pd.crosstab(df.Date, df.Col)
Col A B
Date
04-Jan-16 2 1
05-Jan-16 1 1
Run Code Online (Sandbox Code Playgroud)
使用pivot_table方法:
In [116]: df.pivot_table(index='Date', columns='Col', aggfunc='size') \
.rename_axis(None, axis=1)
Out[116]:
A B
Date
04-Jan-16 2 1
05-Jan-16 1 1
Run Code Online (Sandbox Code Playgroud)
In [121]: df.groupby(['Date', 'Col']).size().unstack('Col')
Out[121]:
Col A B
Date
04-Jan-16 2 1
05-Jan-16 1 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |