如何在Pandas Groupby中把数据框架的行分组到列表中

如何在Pandas Groupby中把数据框架的行分组到列表中

假设你有一个由两列组成的Pandas DataFrame,我们想对这些列进行分组。在这篇文章中,我们将讨论同样的问题。

创建Dataframe,将Dataframe的行分成一个列表

# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                             35, 40, 45, 50]})
# Print the dataframe
df
Python

输出:

如何在Pandas Groupby中把数据框架的行分组到列表中?

在Pandas中使用apply()将行分组为一个列表

我们可以在第1列使用groupby()方法,并在pandas DataFrame的每一组上应用该方法来应用一个列表。

# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                             35, 40, 45, 50]})
 
 
# Use groupby method and apply
# method on the dataframe
df = df.groupby('column1')['column2'].apply(list)
 
# Print the dataframe again
df
Python

输出:

如何在Pandas Groupby中把数据框架的行分组到列表中?

在Pandas中把行分成一个列表使用lambda

我们可以在第1列上使用groupby()方法,在pandas DataFrame的每一组上使用agg()方法来应用聚合,该方法由lambda函数组成。

# importing pandas as pd
import pandas as pd
 
 
# Create the dataframe
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                               35, 40, 45, 50]})
 
# Use groupby method and agg method
# with lambda function on the dataframe
df = df.groupby('column1').agg({'column2': lambda x: list(x)})
 
# Print the dataframe again
df
Python

输出:

如何在Pandas Groupby中把数据框架的行分组到列表中?

在Pandas中把行分成一个列表使用agg()

我们可以在column1上使用groupby()方法,并在pandas DataFrame的每一组上使用agg()方法来应用聚合列表。

# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                               35, 40, 45, 50]})
 
# Use groupby method and agg method
# with list as argument on the dataframe
df = df.groupby('column1').agg(list)
 
df
Python

输出:

如何在Pandas Groupby中把数据框架的行分组到列表中?

在Pandas中使用Pandas tolist将行分组为一个列表

我们可以通过传递’pd.Series.tolist’作为参数,对第1列使用groupby()方法,并使用agg()方法。

# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                               35, 40, 45, 50]})
 
# Use groupby method and agg method with
# pd.Series.tolist as argument on the dataframe
df = df.groupby('column1').agg(pd.Series.tolist)
 
df
Python

输出:

如何在Pandas Groupby中把数据框架的行分组到列表中?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册