python读取TXT内容后怎么计算里面数据?

读取文本内容,计算销售总额,列出销售额最高/最低的商品编码和销售额
文本文件内容如下:
商品编码,销售单价,销售数量
10001,12.5,30
10002,15.8,40
10005,200,20
10001,12.5,87
10002,28.7,66

代码如下:
import pandas as pd
dates = pd.read_csv('productinfo.txt') # 获取数据
#print(dates)
#print(dates.loc[:,1].sum())
#print(type(dates["danjia"]))
dates["heji"]=dates["danjia"]*dates["shul"]
he=dates["heji"].sum(axis=0)#指定列列求和
print("销售合计:",he)
dates.loc['axis_0']=dates.loc[:,['danjia','shul']].apply(lambda x:x.sum()) #多列求和
#print(dates)
df = dates.groupby(['biaohao'])['heji'].sum()
#print(type(df))
#print(len(df))
for i in df:
print(i)
#df.sort_values('biaohao',ascending=True)
print("编号","销售额")
print(df)
#ad_min = dates.groupby('biaohao').apply(lambda t: t[t.danjia==t.danjia.min()])
#print(ad_min)
#print("最大销售:",df.idmax())
#print("最低销售:",df.idmin())

现在是销售总额可以得出,但是不知道怎么输出销售额最高/最低的商品编码和销售额

第1个回答  2022-05-27
不公用panda,所以直接用列表和字典来写

#最终统计后的结果,字典格式
products = {}
#读取的记录,列表格式
records = []
#读取文件的每一行,列表格式
lines = []

#读取文件,将所有内容写入列表records
with open("productinfo.txt","r") as f:
#循环读取
while True:
line = f.readline()
#读到结尾退出循环
if not line:
break
#如果每行的内容结尾有换行符就舍去
if line[-1] == '\n':
line = line[:-1]
#把每行的数据以逗号为标志分割
lines = line.split(',')
#把分割的数据追加到列表
records.append(lines)

#遍历读到的结果,将结果经过计算后写入字典products
for record in records:
#每条记录的第一项作为字典的KEY,如果这个KEY在字典中就在基础上增加值
if record[0] in products:
products[record[0]]['total_sales'] += eval(record[2])
products[record[0]]['total_money'] += eval(record[1]) * eval(record[2])
#如果这个KEY不在字典,就设置为record原值
else:
products[record[0]] = {'total_sales':eval(record[2]),'total_money':eval(record[1]) * eval(record[2])}

#排序
sales=sorted(products.items(), key=lambda x:x[1]['total_sales'])
print("最大销量商品编号:", sales[-1][0],"销量:",sales[-1][1]['total_sales'])
print("最低销量商品编号:", sales[0][0],"销量:",sales[0][1]['total_sales'])
相似回答