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 方法。