首页 > 解决方案 > 如何操作数据,使其正确地得到如下所述的数学描述?

问题描述

import csv
import math
inFile = open("Data.txt", "r+")
outFile = open("Analysis.txt", "r+")
temp_data = ()
guess = []
myReader = csv.reader(inFile)
with open("Data.txt", "r+") as reader:
for line in reader:
    temp_data = line.split(',')
    guess.append(temp_data[1])
for line in temp_data:
    for i in line:
        if i.isdigit() == True:
            int(round(temp_data))
inFile.close()

说明: 到目前为止,这是我正在做的一个分析天气数据的学校项目。Data.txt 只是从政府网站以正确格式收集的天气数据,上面的代码首先导入内容,打开必要的文件并处理数据。我需要帮助弄清楚如何使用 python 中的“round”函数将所有浮点数据值四舍五入为整数,然后找到所有数据的平均值、中位数、平均值和众数。Analysis.txt 只是从 data.txt 中取出中间列并将其写入那里。

标签: pythonpython-3.x

解决方案


您包含的示例中似乎有很多冗余代码,所以我有点不确定您要做什么,但请参阅下面的建议。我基本上是在遍历您的行中的所有项目,将它们转换为浮点数并舍入它们。

更改.isdigit()为 try/except 子句以转换为浮点数

guess = []
with open("Data.txt", "r+") as reader:
    for line in reader:
        temp_data = []
        for i in line.split(','):
            try:
                temp_data.append(round(float(i)))
            except ValueError:
                temp_data.append(i)
        guess.append(temp_data[1])

要将其写入新文件,您可以执行以下操作

with open("Analysis.txt", "w") as writer:
    for g in guess:
        writer.write(str(g))

如果您希望分离写入的数据,可以使用以下代码(用 分隔\n

with open("Analysis.txt", "w") as writer:
    writer.writelines('\n'.join(map(str,guess)))

推荐阅读