Pandas DataFrame Groupby两个列并计数
在本文中,我们将介绍如何使用Pandas DataFrame将数据按两个列分组,并计算每个组中每个类别的数量。
首先,我们需要创建一个示例数据集,以便更好地演示如何使用Pandas进行组合和计数。
import pandas as pd
data = {'State': ['CA', 'CA', 'CA', 'NY', 'NY', 'FL'],
'City': ['San Francisco', 'San Francisco', 'Los Angeles', 'New York', 'Buffalo', 'Miami']}
df = pd.DataFrame(data)
这将创建一个具有州名和城市名的DataFrame。
State City
0 CA San Francisco
1 CA San Francisco
2 CA Los Angeles
3 NY New York
4 NY Buffalo
5 FL Miami
接下来,我们将按州和城市对DataFrame进行分组,并计算每个组中的计数。
grouped = df.groupby(['State', 'City']).size().reset_index(name='Counts')
这将创建一个具有州名,城市名和计数的新DataFrame。
State City Counts
0 CA Los Angeles 1
1 CA San Francisco 2
2 FL Miami 1
3 NY Buffalo 1
4 NY New York 1
我们还可以根据计数对结果进行排序。
grouped.sort_values(['Counts'], ascending=False, inplace=True)
这将按计数值降序排序组合后的DataFrame。
State City Counts
1 CA San Francisco 2
0 CA Los Angeles 1
2 FL Miami 1
4 NY New York 1
3 NY Buffalo 1
最后,我们可以使用Pandas的plot功能创建一个水平条形图来可视化结果。
import matplotlib.pyplot as plt
grouped.plot(x='City', y='Counts', kind='barh', figsize=(10,5))
plt.show()
这将创建一个水平条形图,显示每个城市每个州的计数。
阅读更多:Pandas 教程
总结
在本文中,我们介绍了如何使用Pandas DataFrame对两个列进行分组,并计算每个组中每个类别的数量。我们还展示了如何使用Pandas的plot功能可视化结果。Pandas是一个功能强大的Python库,用于处理和分析数据。在处理数据时,Pandas使得分组,计数和可视化变得简单。