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())

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

参考技术A 不公用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'])

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内容后怎么计算里面数据?的主要内容,如果未能解决你的问题,请参考以下文章

怎么用fstream读取文件里存的内容

python怎样读取txt文件的数据内容

怎么使用python中的jieba对csv 文件内容分词后导入TXT中

用python读取文本文件,对读出的每一行进行操作,这个怎么写?

qt 读取一个txt文件,把里面的内容已二进制的方式存储到另一个文件里面。

java 读取zip里面的文件夹