如何使用列表分析文件中的数据

时间:2019-04-25 16:22:50

标签: python list data-analysis

Heres what the program should look likeHere is the data file I am reading from我正在创建一个函数,该函数从文件中获取分析数据。该文件包含销售人员ID号,他们进行销售的月份以及销售金额。我必须按季度将它们分类为二维列表。我无法找到一种方法将ID号与索引匹配,然后按季度添加销售额。

这是读取ID号文件的功能,仅显示初始化即可正常工作。

def get_IDs(filename):
    idfile = open(filename, 'r')
    #create ID list
    id_list = []
    sales_data = []
    for line in idfile:
        id_list.append(line.strip('\n'))
        sales_data.append([0,0,0,0])
        id_list.sort()       
    idfile.close()       
    return id_list, sales_data

这是我无法找到设置方法的功能。文件的每一行都分为三部分,我只是找不到一种对它们进行排序的方法。

def process_sales_data(filename, id_list, sales_data):
    datafile = open(filename, 'r')
    for line in datafile:
        data = line.split(' ')
        dataline = data[0] + data[1] + data[2]
        for salesperson in range(len(id_list)):
            for quarter in range(3):

1 个答案:

答案 0 :(得分:0)

首先,我想指出如何优化代码:

  1. 您不必两次读取文件,只需进行一次数据处理,然后以所需的格式存储即可。
  2. 此处无需按ID排序,您可以使用dict来按ID存储四分之四金额。

这是示例代码:

def process_sales_data(filename):
    sales = {}
    with open(filename, 'r') as f:
        for line in f:
            id, month, sale = line.strip('\n').split(' ')
            sales.setdefault(id, [0] * 4)[(int(month) - 1) // 4] += float(sale)
    return sales

如果要输出按ID排序,则可以使用sorted来命令。
希望对您有所帮助,如有其他问题,请发表评论。 :)