如何在 Python-Pandas 中迭代数据框组?
在本文中,我们将了解如何迭代数据帧所划分的组。因此,让我们看看执行此任务的不同方法。
首先,让我们创建一个数据框:
代码:
Python3
# import pandas library
import pandas as pd
# dictionary
dict = {'X': ['A', 'B', 'A', 'B'],
'Y': [1, 4, 3, 2]}
# create a dataframe
df = pd.DataFrame(dict)
# show the dataframe
df
Python3
# import pandas library
import pandas as pd
# dictionary
dict = {'X': ['A', 'B', 'A', 'B'],
'Y': [1, 4, 3, 2]}
# create a dataframe
df = pd.DataFrame(dict)
# group by 'X' column
groups = df.groupby("X")
for name, group in groups:
print(name)
print(group)
print("\n")
Python3
# import pandas library
import pandas as pd
# dictionary
dict = {'X': ['A', 'B', 'A', 'B'],
'Y': [1, 4, 3, 2]}
# create a dataframe
df = pd.DataFrame(dict)
# group by "X" column
groups = df.groupby('X')
# extract keys from groups
keys = groups.groups.keys()
for i in keys:
print(groups.get_group(i))
print('\n')
输出:
方法一:使用 Dataframe.groupby() 。
此函数用于根据某些标准将数据分组。
示例:我们将简单地遍历所有创建的组。
Python3
# import pandas library
import pandas as pd
# dictionary
dict = {'X': ['A', 'B', 'A', 'B'],
'Y': [1, 4, 3, 2]}
# create a dataframe
df = pd.DataFrame(dict)
# group by 'X' column
groups = df.groupby("X")
for name, group in groups:
print(name)
print(group)
print("\n")
输出:
在上面的示例中,我们根据“X”列进行了分组。由于“X”列下有两个不同的值,所以我们的数据框将分为两组。然后我们的 for 循环将运行 2 次,因为组数为 2。“name”代表组名,“group”代表实际分组的数据帧。
方法二:同时使用Dataframe.groupby()和Groupby_object.groups.keys() 。
Groupby_object.groups.keys() 方法将返回组的键。
示例:我们将遍历键。
Python3
# import pandas library
import pandas as pd
# dictionary
dict = {'X': ['A', 'B', 'A', 'B'],
'Y': [1, 4, 3, 2]}
# create a dataframe
df = pd.DataFrame(dict)
# group by "X" column
groups = df.groupby('X')
# extract keys from groups
keys = groups.groups.keys()
for i in keys:
print(groups.get_group(i))
print('\n')
输出:
在上面的示例中,我们将使用函数groups.get_group()来获取所有组。首先,我们将获取组的所有键,然后对其进行迭代,然后为每个键调用get_group()方法。 get_group()方法将返回与键对应的组。