Python学习10

简介: Python学习10

大家好,这里是七七,今天是Python学习专题的最后一期,要介绍两个代码,一个是名称字符串匹配代码,一个是时间序列分解实现代码


首先介绍名称字符串匹配代码。


一、名称字符串匹配代码


import pandas as pd
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
import re
info_data=pd.read_excel("./data/附件1.xlsx")
sale_data=pd.read_excel("./data/附件2.xlsx")
buy_data=pd.read_excel("./data/附件3.xlsx")
loss_data=pd.read_excel("./data/附件4.xlsx")
 
data=pd.merge(buy_data,info_data,on="单品编码",how="left")
data=data[["日期","单品名称"]]
data["日期"]=pd.to_datetime(data["日期"])
data=data.set_index("日期")
 
grouped=data.groupby("日期")
for group_name,group_data in grouped:
    strings=group_data["单品名称"].tolist()
    threshold=80
    similar_strings={}
    for string in strings:
        best_match=process.extractOne(
            string,
            [s for s in strings if s not in [string]],
            scorer=fuzz.ratio)
        if best_match[1]>=threshold and best_match[0]!=string and best_match[0][:2]==string[:2]:
            if re.search(r'\(\d+\)',best_match[0])and re.search(r'\(\d+\)',string):
                similar_strings[string]=best_match[0]
                strings=[s for s in strings if s not in [string]]
    if bool(similar_strings):
        print(group_name)
    for original,similar in similar_strings.items():
        print(f"主要相同的字符串:'{original}‘和'{similar}'")
print(data.info)


二、时间序列分解实现代码


import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.tsa.seasonal import seasonal_decompose
 
plt.rcParams['font.sans-serif'] = [u'simHei']
plt.rcParams['axes.unicode_minus'] = False
 
def time_series_3d(pd_list:list,name):
    num_plots=4
    
    plt.figure(figsize=(8,6))
    
    trend_df=pd.DataFrame()
    
    for df in pd_list:
        
        
        result=seasonal_decompose(df,model='additive',period=365)
        
        for i in range(num_plots):
            if i==1:
                plt.plot(result.trend,label='Trend')
                plt.legend(loc='upper left')
                trend_df[df.name]=result.trend
                
    trend_df.dropna(inplace=True)
    trend_df.to_csv(f"/trend/{name}.csv",encoding="GBK")
    print(trend_df)
    plt.title(name,fontsize=16)
    plt.tight_layout()
    plt.show()
    
######################
#读取数据
 
info_data=pd.read_excel("./data/附件1.xlsx")
sale_data=pd.read_excel("./data/附件2.xlsx")
buy_data=pd.read_excel("./data/附件3.xlsx")
loss_data=pd.read_excel("./data/附件4.xlsx")
 
print(sale_data)
sale_data["销售日期"]=pd.to_datetime(sale_data["销售日期"])
 
rst_data=pd.read_excel("")
 
####################
#处理
 
grouped=rst_data.groupby("品类")
for groupe_name,group_data in grouped:
    group_data["销售日期"]=pd.to_datetime(group_data["销售日期"])
    group_data=group_data.set_index("销售日期")
    
    time_series_3d(group_data["销量(千克)"],group_data["利润率"],group_data["批发价格(元/千克)"],group_data["销售单价(元/千克)"],name=groupe_name)
相关文章
|
7天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
11 1
|
11天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
17 1
|
22天前
|
机器学习/深度学习 JSON 数据挖掘
python语言的学习
学习Python的七个步骤:从安装Python,掌握基础语法,到编写简单代码和函数,进一步学习OOP、标准库及异常处理。探索特定领域如web开发、数据分析或机器学习,利用官方文档、在线课程、开源项目和社区进行学习。持续实践项目,阅读书籍和技术博客,参与比赛和开源贡献以不断提升。注重理论与实践结合,关注技术趋势。
33 3
|
3天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
3天前
|
Python
python学习14-模块与包
python学习14-模块与包
|
3天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
3天前
|
数据采集 Python
python学习9-字符串
python学习9-字符串
|
3天前
|
Python
python学习10-函数
python学习10-函数
|
3天前
|
存储 索引 Python
python学习7-元组
python学习7-元组
|
3天前
|
Python
python学习8-集合
python学习8-集合

热门文章

最新文章