gpt4 book ai didi

python - 添加两个不同的特定 csv 列的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:21 24 4
gpt4 key购买 nike

所以我目前得到一个看起来像这样的 .csv 文件:

HostType,Number
Windows_Desktop,84
Linux_Desktop,12
Windows_Desktop,60
Linux_Desktop,7

我正在尝试编写一个根据总值执行功能的脚本。所以我有两个全局变量:

WINDOWS = 0
LINUX = 0

我正在努力使该函数将两个 Window_Desktop 数字加在一起,并将 Linux_Desktop 数字加在一起。所以像..

def count_function():
global WINDOWS
global LINUX
count_file = open('counts.csv', 'rb')
reader = csv.reader(count_file)
WINDOWS = float(row[2]) + float(otherrow[2])
LINUX = float(row[2]) + float(otherrow[2])

(我知道这是非常错误的语法,只是我想弄清楚的一个简短示例)但是我不知道如何指定要加在一起的列和行。他们总是在同一个地方。 Windows 总是 2 和 4,Linux 总是 3 和 5。所以我不需要以任何方式对它们进行正则表达式。我只是想弄清楚如何做第 2 行第 2 列 + 第 4 行第 2 列。

基本上,我最终会尝试做类似的事情:

if WINDOWS < 80
some_function()

虽然我已经弄清楚了那部分,但它让数字相加,尽管我敲了多少次脑袋,但我似乎还是弄不明白。

最佳答案

您需要通过分析第一列的内容来确定您正在收集的东西的类型。由于您正在收集 WindowsLinux 总计,因此您可以使用字典来收集这些数据。

试试这个版本:

import csv
from collections import defaultdict

data = defaultdict(float) # this just means, the default value of a key
# that doesn't exit is a float

with open('yourfile.csv') as f:
reader = csv.reader(f)
next(f) # This will skip the header
for row in reader:
data[row[0].split('_')[0].strip()] += float(row[1])

if data['Windows'] < 80:
print('Do stuff')

for key, value in data.iteritems():
print('Value for {} is {}'.format(key, value))

关于python - 添加两个不同的特定 csv 列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com