4

我要让用户提交一个 txt 文件进行评估,然后我需要设置一个表格并计算我被难住的某些东西(最大值、最小值、总和等),是如何设置我要打印的表格和如何根据列规范找到最大值、最小值和总和。

到目前为止我的代码----

def main():    
    my_list = [[float(i) for i in line.split(',')] for line in open("Alpha.txt")]
    print(my_list)
    my_list_one = my_list[0]
    my_list_two = my_list[1]
    my_list_three = my_list[2]
    my_list_four = my_list[3]


main()

所有这一切都是读取 Alpha.txt 文件并将数据行划分为单独的列表。我正在努力做的就是把它们放在这样的桌子上......

-----------------------------------------------
|     |   A   |   B   |   C   |   D   |   E   |
-----------------------------------------------
|   1 | 5.00  | 2.00  | 6.00  | 4.00  | 5.00  |
|   2 | 3.00  | 7.00  | 8.00  | 7.00  | 9.00  |
|   3 | 1.10  | 2.20  | 5.80  | 0.10  | 1.30  |
-----------------------------------------------

对于表格格式,我是否只使用基本的字符串格式,例如

my_str = "| {:>12.10f} | {:^3d} | {:>12d} |".format(10**(-i), i, 10**i)

此外,我不确定如何获取用户提交的字母,例如 A 并计算 5.00、3.00 和 1.00 的最小值,除非我根据列或行为每个可能的选择创建一个 if else。

任何帮助表示赞赏!

我当前的程序会打印出来

[[1.2, 4.3, 7.0, 0.0], [3.0, 5.0, 8.2, 9.0], [4.0, 3.0, 8.0, 5.6], [8.0, 4.0, 3.0, 7.4]]
4

1 回答 1

0

就像其他人提到的那样,Pandas 是一个用于数据分析的出色库。但是,Pandas 有一些学习曲线。您的情况可以使用 CSV 文件和基础 csv 阅读库(csv 库文档)以更简单的方式解决。

csv读取示例

以下是如何读取基本 csv 文件的演示:

让我们创建一个基本的 CSV 文件并将其放在与以下代码相同的目录中。如果您要使用文本编辑器打开 csv 文件,它将如下所示:

data1,data2
1,6
2,7
3,8
4,9
5,10

现在让我们创建一些用于读取 CSV 的函数,然后执行您希望完成的操作:

def read_csv_file():
    import csv, os
    this_dir = os.path.abspath(os.path.dirname(__file__))
    csv_file = this_dir+"/sample_data.csv"
    data1_list=[]
    data2_list=[]
    with open(csv_file, 'rb') as csvfile:
        csv_reader = csv.DictReader(csvfile, dialect= 'excel')
        print "1st data row:"
        for csv_row in csv_reader:
            data1_list.append(csv_row["data1"])
            print csv_row["data1"]
            data2_list.append(csv_row["data2"])
    return data1_list, data2_list

def calculate_min(data1):
    from operator import itemgetter
    minimum_data1=min(enumerate(data1), key=itemgetter(1))[1]
    max_data1=max(enumerate(data1), key=itemgetter(1))[1]
    print "the min of the set was: %s"%minimum_data1
    print "the max of the set was: %s"%max_data1

然后,您可以在主文件中使用这两个函数:

data1, data2 = read_csv_file()
calculate_min(data1)

你会得到这个输出:

1st data row:
1
2
3
4
5
the min of the set was: 1
the max of the set was: 5

如果你想做其他操作,最好看看有没有库已经做了,否则手动做。

我希望这有帮助!

——彼得

于 2013-10-23T21:23:49.067 回答