使用Python 2.7导入和分析文本数据

时间:2015-01-09 01:00:22

标签: python-2.7

我在Python 2.7中创建了代码,它使用write()方法将各种产品的销售数据保存到文本文件中。我有限的Python技能已经在下一步发挥作用了 - 我需要能够从文本文件中读取这些数据的代码,然后计算并显示每个项目的平均销售数量。数据存储在文本文件中,就像下面显示的数据一样(但如果有帮助,我可以将其格式化为不同)。

产品A,30

产品B,26

产品C,4

产品A,40

产品B,18

产品A,31

产品B,13

产品C,3

经过太长时间的谷歌搜索无济于事,任何关于管理这个的最佳方式的指针将非常感激。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以从文件read,然后用空格(' ')拆分每一行。然后,只需创建一个字典,并将每个新项目附加到列表中,该列表是每个字母键的值,然后使用sumlen来获得平均值。

实施例

products = {}
with open("myfile.txt") as product_info:
    data = product_info.read().split('\n') #Split by line
    for item in data:
        _temp = item.split(' ')[1].split(',')
        if _temp[0] not in products.keys():
            products[_temp[0]] = [_temp[1]]
        else:
            products[_temp[0]] = products[_temp[0]]+[_temp[1]]

product_list = [[item, float(sum(key))/len(key)] for item, key in d.items()]
product_list.sort(key=lambda x:x[0])

for item in product_list:
    print 'The average of {} is {}'.format(item[0], item[1])

答案 1 :(得分:0)

from __future__ import division
dict1 = {}
dict2 = {}
file1 = open("input.txt",'r') 
for line in file1:
    if len(line)>2:
        data = line.split(",")      
        a,b = data[0].strip(),data[1].strip()
        if a in dict1:      
           dict1[a] = dict1[a] + int(b)
        else:
           dict1[a] = int(b) 

            if a in dict2:      
           dict2[a] = dict2[a] + 1
        else:
           dict2[a] = 1  


for k,v in dict1.items():
   for m,n in dict2.items():
      if k == m:
          avg = float(v/n)       
          print "%s Average is: %0.6f"%(k,float(avg))

输出:

Product A Average is: 33.666667
Product B Average is: 19.000000
Product C Average is: 3.500000