python - 在 Python 中根据唯一键和条件创建新数组

标签 python excel indexing match

我打算用 Python 而不是 Excel 来计算大量数据,但由于我了解 Excel 命令,并且在 Python 中复制它非常困难,所以我陷入了困境。

本质上,我想导入 CSV 文件,识别 C 列的位置,然后对于 A 列中的所有唯一值,将 C 中适用于条件 1990 < x < 2000 的所有值相加。在 B

A,B,C
9,1952,125
2,1994,69
3,1973,72
5,1992,85
1,1994,38
1,1994,95
4,1992,29
8,1984,94

我开始:

import csv
with open('TestCase.txt', 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    row1 = next(reader)

而不是写多个if语句,我想创建由 0 和 1 组成的新数组,然后对 C 中的所有值求和。

给定另一个条件,结果将如下所示

1980<x<1989 94
1990<x<2000 316

额外奖励是 A 中唯一值的总数,代表总和

UniqueValues    Condition   TotalSum
1   1980<x<1989 94
4   1990<x<2000 316

最佳答案

如果您喜欢使用第三方库,可以通过pandas进行矢量化:

import pandas as pd

# read csv file
df = pd.read_csv('file.csv')

# filter column B, group by A, sum C
res = df.loc[df['B'].between(1990, 2000)]\
        .groupby('A')['C'].sum()\
        .reset_index()

结果:

   A    C
0  1  133
1  2   69
2  4   29
3  5   85

关于python - 在 Python 中根据唯一键和条件创建新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716841/

相关文章:

excel - VBA : Choosing discontinuous cell ranges in the loop 中的错误

excel - 如何从日期时间格式中提取小时 12/10/2012 12 :18:58 PM?

vba - 我如何找到 f3dynamics 库?

sql - 未使用 Postgres 索引

MySQL:如何在 boolean/tinyint 列上创建部分索引?

python - 自定义对象训练 Tensor-flow 错误

python - 在 python 中实现 HMAC-SHA1

python - 如何使用 matplotlib 制作新的形状补丁?

python - 同时按行和列降序对 Dataframe 进行排序

python - 如何将Scrapy依赖打包为lambda?