python读取TXT内容后怎么计算里面数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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())
现在是销售总额可以得出,但是不知道怎么输出销售额最高/最低的商品编码和销售额
#最终统计后的结果,字典格式
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'])
python文件读取
有两行数据,存放在txt文件里面:
url:/loan/mvc/api/member/register@mobile:18866668888@pwd:123456
url:/loan/mvc/api/member/recharge@mobile:18866668888@amount:1000
txt里面的两行内容,取出然后返回如下格式的数据:(可定义函数)
[{\'url\':\'/loan/mvc/api/member/register\',\'mobile\':\'18866668888\',\'pwd\':\'123456\'},{\'url\':\'/loan/mvc/api/member/recharge\'
\'\'\'分析: 1.首先从txt利用readlines读取每一行数据,返回列表; 2.用for循环遍历每一行数据,取到值根据@去进行分隔,split函数返回一个列表格式 3.用for循环进行遍历得到元素后,再次用split函数根据:去进行数据切割,返回一个列表,得到key和value 4.定义一个空字典,接收key-value 5.定义一个空列表,接收每一行数据存储的字典 \'\'\' #读取数据 ,按行读取文件中的数据 def read_demo(path): # 打开文件 file = open(path) # 读取文件所有行 data = file.readlines() list1 = [] # 遍历文件所有行 for i in data: # 通过观察,可以根据@进行分割 split_data = i.strip(\' \\n\').split(\'@\') dict1 = {} # 遍历分割后的所有字符 for j in split_data: # 观察得知,都是键值对,将键值对通过冒号分割后,作为字典的键和值 dict1[j.split(":")[0]] = j.split(":")[1] # 依次将字典加入列表 list1.append(dict1) print(list1) read_demo("data.txt")
以上是关于python读取TXT内容后怎么计算里面数据?的主要内容,如果未能解决你的问题,请参考以下文章
怎么使用python中的jieba对csv 文件内容分词后导入TXT中
用python读取文本文件,对读出的每一行进行操作,这个怎么写?