Pandas 在DataFrame中添加列的总和
在本文中,我们将介绍如何将列的总和添加到Pandas DataFrame中。这种操作可能会在数据分析和处理中经常用到。我们将使用Python和Pandas库,所以请确保您已经熟悉这些基础知识。
假设我们有一个包含销售数据的DataFrame,如下所示:
import pandas as pd
data = {
"Date": ["2020-01-01", "2020-01-02", "2020-01-03", "2020-01-04", "2020-01-05"],
"Product": ["A", "B", "C", "D", "E"],
"Sales": [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)
这个DataFrame有三列,包括日期、产品和销售额。我们要在DataFrame中添加一列,对其它列进行求和。
阅读更多:Pandas 教程
使用assign方法
Pandas 的assign方法可以在原始的 DataFrame 上创建新的列,同时保留原始 DataFrame 的状态。我们可以使用 sum 方法计算每一行的和,如下所示:
df = df.assign(Total=lambda x: x['Sales'].sum())
这代码中,我们使用 assign() 方法在 DataFrame 中添加了一个新的列 Total,该列使用 sum() 方法计算了数据框中 Sales 列的总和。
现在,我们查看DataFrame,就会发现多了一列“Total”:
Date Product Sales Total
0 2020-01-01 A 100 1500
1 2020-01-02 B 200 1500
2 2020-01-03 C 300 1500
3 2020-01-04 D 400 1500
4 2020-01-05 E 500 1500
我们可以看到新的“Total”列,它的值为“Sales”列的总和。
使用loc方法
我们可以使用 loc 方法将新列添加到 DataFrame 中。下面的代码会产生与使用 assign 方法相同的结果:
df.loc[:, 'Total'] = df.sum(numeric_only=True, axis=1)
在这里,我们使用 loc[] 方法指定新行的索引,并使用 : 来选择整个 DataFrame。Total是新列的名称,使用了 sum() 方法来计算当前行的总和。
计算每行的总和
上面的方法可以计算 DataFrame 中每列的总和,我们也可以计算每行的总和并将其添加到 DataFrame 中:
df['Row_Total'] = df.sum(numeric_only=True, axis=1)
这段代码计算了Sales、Date和Product列的每一行的总和,并将该总和保存在新的Row_Total列中。
现在,如果我们输出 DataFrame,我们会看到额外的 Row_Total 列:
Date Product Sales Row_Total
0 2020-01-01 A 100 1200
1 2020-01-02 B 200 1400
2 2020-01-03 C 300 1600
3 2020-01-04 D 400 1800
4 2020-01-05 E 500 2000
总结
在本文中,我们介绍了如何将一个DataFrame的列的总和添加到另一个列中。我们可以使用Pandas的assign和loc方法添加列,并使用sum方法计算列总和。我们还介绍了如何计算每行总和并将其添加到DataFrame中。这些方法可以在数据分析和处理中经常使用,有助于对数据进行更深入的分析。
极客教程