📅  最后修改于: 2023-12-03 15:40:27.935000             🧑  作者: Mango
在Pandas中,有时候需要根据多个列中的值将数据框拆分成多个数据框或组。这个操作在数据处理中非常常见。在本文中,我们将介绍如何使用 Pandas 将数据框拆分成多个数据框或组。
我们将使用以下示例数据框进行演示:
import pandas as pd
data = {'Company': ['Google', 'Microsoft', 'Facebook', 'Google', 'Microsoft', 'Facebook'],
'Year': [2017, 2017, 2017, 2018, 2018, 2018],
'Revenue': [100, 120, 80, 150, 130, 100]}
df = pd.DataFrame(data)
print(df)
注意:此处使用 print()
会使输出更易读。
输出:
Company Year Revenue
0 Google 2017 100
1 Microsoft 2017 120
2 Facebook 2017 80
3 Google 2018 150
4 Microsoft 2018 130
5 Facebook 2018 100
我们首先看一下如何根据单个列将数据框拆分成多个数据框或组。
为了分组,我们可以使用 Pandas 中的 groupby()
函数。下面的示例演示了如何使用 groupby()
函数将数据框按公司名称进行分组:
groups = df.groupby('Company')
for name, group in groups:
print(name)
print(group)
输出:
Facebook
Company Year Revenue
2 Facebook 2017 80
5 Facebook 2018 100
Google
Company Year Revenue
0 Google 2017 100
3 Google 2018 150
Microsoft
Company Year Revenue
1 Microsoft 2017 120
4 Microsoft 2018 130
如上所示,groupby()
函数将数据框按公司名称分成了 3 个组。
接下来,我们演示如何根据多个列将数据框拆分成多个数据框或组。这时,我们需要在 groupby()
函数中传递多个列名作为分组依据。
下面的示例演示了如何使用 groupby()
函数将数据框按公司名称和年份进行分组:
groups = df.groupby(['Company', 'Year'])
for name, group in groups:
print(name)
print(group)
输出:
('Facebook', 2017)
Company Year Revenue
2 Facebook 2017 80
('Facebook', 2018)
Company Year Revenue
5 Facebook 2018 100
('Google', 2017)
Company Year Revenue
0 Google 2017 100
('Google', 2018)
Company Year Revenue
3 Google 2018 150
('Microsoft', 2017)
Company Year Revenue
1 Microsoft 2017 120
('Microsoft', 2018)
Company Year Revenue
4 Microsoft 2018 130
如上所示,我们按公司名称和年份将数据分成了 6 个组。
在 Pandas 中,我们可以使用 groupby()
函数轻松地根据一个或多个列将数据框拆分成多个数据框或组。这个操作在处理数据时非常有用。