我要求用户提交一个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)
此外,我不确定如何获取用户提交的lette,ex 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]]
答案 0 :(得分:0)
与其他人提到的一样,Pandas是一个很好的数据库分析库。然而,熊猫有一点学习曲线。您可以使用CSV文件和基础csv读取库(csv library documentation)以更简单的方式解决您的情况。
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
如果您希望进行其他操作,最好查看是否有已经执行此操作的库,否则请手动执行。
我希望这有帮助!
- 彼得