本文共 1325 字,大约阅读时间需要 4 分钟。
在Pandas中,想要根据其他列的值对某一列的值进行求和,可以使用groupby()函数结合sum()函数。以下是详细的操作步骤和代码示例。
确保你的环境中已经安装了Pandas库。如果尚未安装,可以运行以下命令进行安装:
pip install pandas
假设你有一个DataFrame df,包含两列 A 和 B,你需要根据列 A 的值对列 B 进行求和。以下是创建DataFrame的步骤:
import pandas as pddata = { 'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': [1, 2, -3, 4, -5, 6, -7, 8]}df = pd.DataFrame(data) groupby和sum函数进行分组求和按照以下步骤对列 B 进行分组求和:
使用groupby()函数按照列 A 的值对DataFrame进行分组。
对每个组,使用sum()函数计算列 B 的和。
以下是完整的代码示例:
import pandas as pddata = { 'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': [1, 2, -3, 4, -5, 6, -7, 8]}df = pd.DataFrame(data)result = df.groupby('A')['B'].sum()print(result) 为了验证结果的正确性,可以定义一个测试用例:
import pandas as pddata = { 'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': [1, 2, -3, 4, -5, 6, -7, 8]}df = pd.DataFrame(data)expected_result = pd.Series([7, -6], index=['foo', 'bar'], name='B')def test_groupby_sum(): result = df.groupby('A')['B'].sum() assert result.equals(expected_result)test_groupby_sum() 运行代码后,输出结果如下:
Abar -6foo 7dtype: int64
在这个示例中,我们首先导入了Pandas库,创建了一个包含两列 A 和 B 的DataFrame。接着,我们使用groupby()函数按照列 A 的值对DataFrame进行分组,并使用sum()函数对每个组中的列 B 进行求和。最后,我们通过测试用例验证了结果的正确性。
如果你有任何问题或需要进一步的帮助,请随时联系我!
转载地址:http://dpvfk.baihongyu.com/