如何对 Pandas DataFrame 的值进行分组
为了GROUPBY值数,使用groupby(),size()和unstack()熊猫数据帧的方法。首先,创建一个包含3列的DataFrame-
dataFrame = pd.DataFrame({
'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],'Quantity': [10, 50, 10, 20, 25, 50]})现在,groupby值使用groupby()方法计数。对于计数,请使用size()和unstack()。该unstack()出栏标签的一个新的水平-
dataFrame = dataFrame.groupby(['Product Category', 'Product Name', 'Quantity']).size().unstack(fill_value=0)
示例
以下是完整的代码-
import pandas as pd
# create a dataframe with 3 columns
dataFrame = pd.DataFrame({
'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],'Quantity': [10, 50, 10, 20, 25, 50]})
# dataframe
print"Dataframe...\n",dataFrame
# count and unstack
dataFrame = dataFrame.groupby(['Product Category', 'Product Name', 'Quantity']).size().unstack(fill_value=0)
print"\nResultant DataFrame...\n",dataFrame输出结果这将产生以下输出-
Dataframe...
Product Category Product Name Quantity
0 Computer Keyboard 10
1 Mobile Phone Charger 50
2 Electronics SmartTV 10
3 Electronics Camera 20
4 Computer Graphic Card 25
5 Mobile Phone Earphone 50
Resultant DataFrame...
Quantity 10 20 25 50
Product Category Product Name
Computer Graphic Card 0 0 1 0
Keyboard 1 0 0 0
Electronics Camera 0 1 0 0
SmartTV 1 0 0 0
Mobile Phone Charger 0 0 0 1
Earphone 0 0 0 1热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西