Pandas 在DataFrame中创建汇总列

Pandas 在DataFrame中创建汇总列

在本文中,我们将介绍如何使用Pandas在DataFrame中创建汇总列。一个汇总列是一个由其他列的值汇总而来的单个列。

阅读更多:Pandas 教程

使用DataFrame的agg函数创建汇总列

Pandas的agg函数可以用于创建汇总列。agg函数可以对DataFrame中的每一行应用一个函数,并将结果存储在汇总列中。

例如,假设我们有这样一份包含以下内容的DataFrame:

Name Age Gender Salary
Amy 31 Female 62000
Bob 52 Male 85000
Chris 43 Male 72000
David 28 Male 55000
Emily 35 Female 68000

我们想要创建一个汇总列,其中每行的值是“该行的工资除以该行的年龄”。

我们可以使用agg函数来实现这个操作。首先,我们需要创建一个lambda函数来计算每行的值。然后,我们可以将lambda函数作为参数传递给agg函数,并指定汇总列的名称。

df = pd.DataFrame({'Name': ['Amy', 'Bob', 'Chris', 'David', 'Emily'],
                   'Age': [31, 52, 43, 28, 35],
                   'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
                   'Salary': [62000, 85000, 72000, 55000, 68000]})

df['Salary per Age'] = df.agg(lambda x: x['Salary'] / x['Age'], axis=1)

print(df)

输出:

    Name  Age  Gender  Salary  Salary per Age
0    Amy   31  Female   62000     2000.000000
1    Bob   52    Male   85000     1634.615385
2  Chris   43    Male   72000     1674.418605
3  David   28    Male   55000     1964.285714
4  Emily   35  Female   68000     1942.857143

我们可以看到,新的汇总列“Salary per Age”已经被添加到DataFrame中。

注意,lambda函数中的参数x是DataFrame中的每一行数据。由于agg函数对每个行进行迭代处理,因此,在lambda函数中将每个参数的Salary和Age值进行除法运算,得到每个行的结果。

使用DataFrame的apply函数创建汇总列

另一种创建汇总列的方法是使用apply函数。apply函数可以对整个DataFrame应用一个函数,并将结果存储在汇总列中。

例如,假设我们有以下DataFrame:

Name Age Test1 Test2 Test3
Amy 31 87 92 78
Bob 52 78 85 90
Chris 43 90 92 95
David 28 80 75 85
Emily 35 88 83 90

我们想要创建一个汇总列,其中每行的值是“该行三次测试的平均值”。

我们可以使用apply函数来计算每行的平均值,并将结果存储在新的汇总列中。首先,我们需要创建一个lambda函数来计算每行的平均值。然后,我们可以使用apply函数将lambda函数应用于整个DataFrame,并将结果存储在汇总列中。

df = pd.DataFrame({'Name': ['Amy', 'Bob', 'Chris', 'David', 'Emily'],
                   'Age': [31, 52, 43, 28, 35],
                   'Test1': [87, 78, 90, 80, 88],
                   'Test2': [92, 85, 92, 75, 83],
                   'Test3': [78, 90, 95, 85, 90]})

df['Test Avg'] = df.apply(lambda x: (x.Test1 + x.Test2 + x.Test3) / 3, axis=1)

print(df)

输出:

    Name  Age  Test1  Test2  Test3   Test Avg
0    Amy   31     87     92     78  85.666667
1    Bob   52     78     85     90  84.333333
2  Chris   43     90     92     95  92.333333
3  David   28     80     75     85  80.000000
4  Emily   35     88     83     90  87.000000

我们可以看到,新的汇总列“Test Avg”已经被添加到DataFrame中。

注意,lambda函数中的参数x是每一行数据。由于apply函数对整个DataFrame应用lambda函数,因此,在此函数中将每一行的Test1,Test2和Test3的值相加,最后除以3,得到每行的结果。

总结

使用Pandas的agg和apply函数可以方便地创建汇总列。我们可以使用lambda函数(agg函数)或将函数应用于整个DataFrame(apply函数),以计算每行数据的值,并将结果存储在汇总列中。这使得我们可以更方便地汇总数据,并在DataFrame中进行操作和分析。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程