如何获得 pandas 列中元素总和
我们将介绍如何获取 pandas dataframe 列的元素总和,以及使用 groupby
计算累积和的方法,以及基于其他列值数据的条件来得到列和的方法。
获取 pandas dataframe
列和的方法
首先,我们使用 numpy
库创建一个随机数组,然后使用 sum()
函数获取每个列的总和。
import numpy as np
import pandas as pd
df = pd.dataframe(np.random.randint(0, 10, size=(10, 4)), columns=list("1234"))
print(df)
total = df["1"].sum()
print("column 1 sum:", total)
total = df["2"].sum()
print("column 2 sum:", total)
total = df["3"].sum()
print("column 3 sum:", total)
total = df["4"].sum()
print("column 4 sum:", total)
如果运行此代码,你将获得以下输出(你的情况下值可能不同),
1 2 3 4
0 2 2 3 8
1 9 4 3 1
2 8 5 6 0
3 9 5 7 4
4 2 7 3 7
5 9 4 1 3
6 6 7 7 3
7 0 4 2 8
8 0 6 6 4
9 5 8 7 2
column 1 sum: 50
column 2 sum: 52
column 3 sum: 45
column 4 sum: 40
与 groupby
的累加总和
我们可以使用 groupby
方法来获得累计和。考虑以下带有 dataframe
,fruit
和 sale
列的 dataframe
:
import pandas as pd
df = pd.dataframe(
{
"date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
"fruit": ["apple", "apple", "banana", "banana"],
"sale": [34, 12, 22, 27],
}
)
如果我们要计算每个水果的累计销售总额,对于每个日期我们可以这样计算,
import pandas as pd
df = pd.dataframe(
{
"date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
"fruit": ["apple", "apple", "banana", "banana"],
"sale": [34, 12, 22, 27],
}
)
print(df.groupby(by=["fruit", "date"]).sum().groupby(level=[0]).cumsum())
运行上述代码后,我们将获得以下输出,该输出显示每个日期的水果累积总和:
fruit date sale
apple 08/09/2018 34
10/09/2018 46
banana 08/09/2018 22
10/09/2018 49
基于其他列值的条件获取列总和的方法
此方法提供了在给定条件为 true
时获取总和的功能,以及在条件为 false
时用给定值替换总和的功能。考虑以下代码
import numpy as np
import pandas as pd
df = pd.dataframe(np.random.randn(5, 3), columns=list("xyz"))
df["sum"] = df.loc[df["x"] > 0, ["x", "y"]].sum(axis=1)
df["sum"].fillna(0, inplace=true)
print(df)
在上面的代码中,我们将新列总和添加到 dataframe
中,这是第一列 ['x','y']
的和,如果 ['x']
大于 1,否则我们将和替换为 0
。
运行代码后,我们将获得以下输出(根据你的情况,值可能会更改)。
x y z sum
0 -1.067619 1.053494 0.179490 0.000000
1 -0.349935 0.531465 -1.350914 0.000000
2 -1.650904 1.534314 1.773287 0.000000
3 2.486195 0.800890 -0.132991 3.287085
4 1.581747 -0.667217 -0.182038 0.914530
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串