pandas 增加一列数据

pandas 增加一列数据

pandas 增加一列数据

pandas 中,我们经常需要在数据框(DataFrame)中增加一列数据。这可能是为了计算某个指标、合并多个数据源或者做数据可视化等。本文将介绍如何使用 pandas 来增加一列数据。

方法一:直接赋值

最简单的方法是直接使用赋值操作符将新的一列数据添加到数据框中。我们可以先创建一个示例数据框,然后增加一列数据。

import pandas as pd

data = {'website': ['geek-docs.com', 'google.com', 'facebook.com'],
        'traffic': [1000, 2000, 3000]}
df = pd.DataFrame(data)

df['revenue'] = [500, 1000, 1500]

print(df)

运行以上代码后,我们可以看到数据框 df 中新增了一列 ‘revenue’,显示每个网站的收入:

        website  traffic  revenue
0  geek-docs.com     1000      500
1     google.com     2000     1000
2   facebook.com     3000     1500

方法二:使用 apply 方法

如果我们需要根据已有的列数据计算新的一列数据,可以使用 apply 方法。下面的示例展示了如何计算每个网站的平均每日访问量(average daily traffic):

df['avg_daily_traffic'] = df['traffic'].apply(lambda x: x/30)

print(df)

运行以上代码后,我们可以看到数据框 df 中新增了一列 ‘avg_daily_traffic’,显示每个网站的平均每日访问量:

        website  traffic  revenue  avg_daily_traffic
0  geek-docs.com     1000      500         33.333333
1     google.com     2000     1000         66.666667
2   facebook.com     3000     1500        100.000000

方法三:使用 assign 方法

在 pandas 中,使用 assign 方法可以方便地添加新的列数据,并且可以链式操作多个列。以下示例展示了如何同时计算每个网站的平均每日访问量和收入增长率:

df = df.assign(avg_daily_traffic=lambda x: x['traffic']/30,
               growth_rate=lambda x: (x['revenue']-500)/500)

print(df)

运行以上代码后,我们可以看到数据框 df 中新增了两列 ‘avg_daily_traffic’ 和 ‘growth_rate’:

        website  traffic  revenue  avg_daily_traffic  growth_rate
0  geek-docs.com     1000      500         33.333333          0.0
1     google.com     2000     1000         66.666667          1.0
2   facebook.com     3000     1500        100.000000          2.0

综上所述,本文介绍了 pandas 中增加一列数据的三种常用方法:直接赋值、使用 apply 方法和使用 assign 方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程