gpt4 book ai didi

Python 分析和更改数据值

转载 作者:行者123 更新时间:2023-12-01 08:44:44 25 4
gpt4 key购买 nike

我尝试过让我的程序运行,但是由于我没有很多经验,所以我遇到了很多问题。我的工作思路是分析 csv 文件的数据并将负值更改为 0。到目前为止,我已经设法从文件中获取所有数据并将其保存到列表中,并手动分配文件的“开始”和“结束”时间。

import csv

data = []

filename = str(input("Give the file name: "))
with open(filename) as csvfile:
spamreader = csv.reader(csvfile, delimiter=';')
for row in spamreader:
data.append(row)

print("File", filename, "is opened,", len(data),"rows will be analyzed.")

data.pop(0) #deletes the header

print (f'Analyzing data between dates {data[0][0]} and {data[1097][0]}.') #data[row][column]

如何将数据(屏幕截图)中的负值更改为 0,然后将所有内容保存到新的 csv 文件中?我们将非常感谢您的帮助。 screenshot inside the CSV fileasd

[实际数据文件有1000+行]

最佳答案

如果您的文件仅包含数字,您可以尝试以下代码:

import csv
from collections import defaultdict

def convert(item):
try:
item = float(item)
if item < 0:
return 0
else:
return item
except ValueError:
return item

sums = defaultdict(list)

with open('Data.csv', 'r') as inp, open('output.csv', 'w', newline = '') as outp:
reader = csv.reader(inp, delimiter = ';')
writer = csv.writer(outp, delimiter = ';', dialect = 'excel')
headers = next(reader)
for line in reader:
line = [convert(i) for i in line]
sums[line[0]].append(line[1])
writer.writerow(line)

for k,v in sums.items():
print('key: {} total: {}'.format(k,sum(v)))

首先,您可以使用 with 上下文管理器分别打开要读取和写入的文件。然后,您可以转换数据并将其直接写入目标文件(此处名为 output.csv),而不是将其存储到列表中。这里的 for line in reader 循环遍历各行,并将每个值转换为绝对整数,然后再将其写入文件。

如果您想将值存储到字典中以供使用,我添加了 Python 标准库中的 defaultdict。字典 sums 将包含按日期排列的键及其值。要按天打印总和,您可以简单地使用字符串格式来打印键和求和值。

关于Python 分析和更改数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355207/

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