【Python小笔记】零碎同步

1.多字段连接,连接字段名不一致–left_on\right_on对应列示后可匹配

import pandas as pd
df_A1=pd.read_excel('E:\Mercy\data\mytest\A.xlsx',sheet_name=0)
df_A2=pd.read_excel('E:\Mercy\data\mytest\A.xlsx',sheet_name=1)
df_A=df_A1.merge(right=df_A2,how='left',left_on=['公司名','业务主体'],right_on=['公司名','业务线'])
df_A
公司名业务主体业务线金额
0南京成长成长1
1天津成长成长2
2北京成长成长3
3南京育儿育儿4

2.merge一对多left–效果同sql里的left join

(一侧或被多侧重复,右侧会被左侧剔除)

import pandas as pd
df_A2=pd.read_excel('E:\Mercy\data\mytest\A.xlsx',sheet_name=1)
df_A3=pd.read_excel('E:\Mercy\data\mytest\A.xlsx',sheet_name=2)
df_A22=df_A2.iloc[:,[0,2]]
df_A3.merge(df_A22,how='right',on='公司名')
公司名金额
0南京1
1南京4
2天津2
3北京3

3.xlsxwriter写入excel文本和图片

import pandas as pd
import  xlsxwriter  as xlsx 
#读取/创建文件
year_month=input('请输入计算期年月(YYYY_MM):')
book=xlsx.Workbook('E:\\Mercy\\data\\mytest\\'+year_month+'测试.xlsx')
#添加工作表
sheet=book.add_worksheet('demo')#输入文本
pm = {'bold' : True,'font_name' : '微软雅黑','color':'red'
}
formate = book.add_format(pm)
amount=56
sheet.write('A1','实际支付金额:'+str(amount),formate)#循环输入dataframe
numform_int= book.add_format({'num_format': '0'}) 
df_A2=pd.read_excel('E:\Mercy\data\mytest\A.xlsx',sheet_name=1)
rown=9
for index, row in df_A2.iterrows():#sheet.write_string(rown,6,index)sheet.write_string(rown,0,row[df_A2.columns[0]])sheet.write_string(rown,1,row[df_A2.columns[1]])sheet.write_number(rown,2,row[df_A2.columns[2]],numform_int)rown +=1#输入图表
import matplotlib.pyplot as plt
import numpy as np
from io import BytesIO
##绘制图表
x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x))
##接收io流
imagedata=BytesIO()
plt.savefig(imagedata)
##插入图片
sheet.insert_image(0,0,'',{"image_data": imagedata})#在0行0列插入book.close()
请输入计算期年月(YYYY_MM):20

在这里插入图片描述

4.读取模糊文件名

import sys
import re
import pandas as pd
import ospat=re.compile('全渠道.*?')
for file_name in os.listdir('E:\Mercy\data\public'):if re.match(pat,file_name):depart_path='E:\Mercy\data\public\\'+file_name
df_depart=pd.read_excel(depart_path,sheet_name='门店名称匹配',header=1) 
df_depart=df_depart.drop('数值',axis=1)
df_depart.rename(columns={'文本':'门店'},inplace=True)
df_depart['门店']=df_depart['门店'].apply(lambda x:str(x))
df_depart.info()#df_depart.to_excel('E:\Mercy\data\public\名店名称匹配.xlsx',index=False)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 445 entries, 0 to 444
Data columns (total 17 columns):#   Column   Non-Null Count  Dtype         
---  ------   --------------  -----         0   门店       445 non-null    object        1   管报名称     445 non-null    object        2   BI名称     445 non-null    object        3   会员KPI名称  445 non-null    object        4   分部       445 non-null    object        5   地级市      444 non-null    object        6   城市等级     444 non-null    object        7   店总       444 non-null    object        8   开店日期     445 non-null    datetime64[ns]9   开店日期.1   445 non-null    object        10  年级       445 non-null    object        11  规模店      444 non-null    object        12  物业类型     419 non-null    object        13  属性       444 non-null    object        14  计租方式     346 non-null    object        15  使用面积     431 non-null    float64       16  面积划分     385 non-null    object        
dtypes: datetime64[ns](1), float64(1), object(15)
memory usage: 59.2+ KB

5.一串字符串是否包含某些关键词的任意一个any|全部all

ls1='服务-在线教育-家庭教育-能力启蒙;服务-在线教育-家庭教育-性格培养;服务-在线教育-家庭教育-亲子成长;服务-教育培训-早教-早教中心;'
ls2='服务-才艺运动-运动-篮球;'
ls3='服务-在线教育-家庭教育-能力启蒙;服务-在线教育-家庭教育-性格培养;'
kwl=['性格培养','亲子成长']
kw='性格培养'
#多个
any(kw in ls3 for kw in kwl)
all(kw in ls3 for kw in kwl)
#单个
kw in ls1
ls2.find(kw)>-1
-1
for i in range(len(df_guiderule)):print('.*'+df_guiderule.iloc[i,0]+'.*',df_guiderule.iloc[i,1])

6.找到文件夹下最新文件

import os# 输入目录路径,输出最新文件完整路径
def find_new_file(dir):'''查找目录下最新的文件'''file_lists = os.listdir(dir)file_lists.sort(key=lambda fn: os.path.getmtime(dir + "\\" + fn)if not os.path.isdir(dir + "\\" + fn) else 0)print('最新的文件为: ' + file_lists[-1])file = os.path.join(dir, file_lists[-1])print('完整路径:', file)return file# 函数调用dir=r'E:\WXWork\1688853870925791\WeDrive\孩子王\战略支持-数字化分析\1、制度流程规则\门店信息表'
find_new_file(dir)

7.解决pandas to_excel覆盖原sheet

## topath文件Sheet1有内容,新内容保存到Sheet2后原来的内容消失
from openpyxl import load_workbook
import pandas as pd
topath='E:\Mercy\data\public\门店test.xlsx'
depart_path='E:\Mercy\data\public\门店名称匹配.xlsx'df_prov=pd.read_excel(depart_path,sheet_name='分部汇总',header=0,usecols='A:D,F:K',nrows=22)
df_prov.to_excel(topath,sheet_name='Sheet2',index=False)
from openpyxl import load_workbook
import pandas as pd
topath='E:\Mercy\data\public\门店test.xlsx'
depart_path='E:\Mercy\data\public\门店名称匹配.xlsx'target_writer = pd.ExcelWriter(topath, engine='openpyxl')#生成一个ExcelWriter对象
book = load_workbook(target_writer.path)#记录下这个Excel文件的原有sheet
target_writer.book = book#在要写入的ExcelWriter中填充之前记录的sheet
df_prov=pd.read_excel(depart_path,sheet_name='分部汇总',header=0,usecols='A:D,F:K',nrows=22)#要保存的新内容
df_prov.to_excel(excel_writer=target_writer,sheet_name='Sheet2',index=False)#保存目标是target_writer,而非路径
target_writer.save()
target_writer.close()

8.制作词云

filename = 'E:\Mercy\data\mytest\wordcloudtest.txt'
with open(filename, encoding='utf-8') as f:text = f.read()
#导入中文分词工具
import jieba
#切分文本字符串
jieba.setLogLevel(jieba.logging.INFO)
text = jieba.cut(text)
#以空格为单位分隔
#text = " ".join(text)
text
<generator object Tokenizer.cut at 0x0000018F0935EF90>
stopword=['的','是']
stayed_line = ""
for te in text:if te not in stopword:stayed_line +=te+" "
#导入imageio库
import imageio
#调用imread函数来读取本地图片以设置词云形状
graph = imageio.imread("E:\Mercy\data\mytest\star.png")'''
import numpy as np
from PIL import Image
image = Image.open(r'E:\Mercy\data\mytest\star.png')
graph = np.array(image)'''
"\nimport numpy as np\nfrom PIL import Image\nimage = Image.open(r'E:\\Mercy\\data\\mytest\\star.png')\ngraph = np.array(image)"
from wordcloud import WordCloudwc = WordCloud(font_path="C:\Windows\Fonts\STHUPO.TTF",background_color="white", max_words=1600, mask=graph, contour_width=0, contour_color='steelblue').generate(stayed_line)
#导入python默认的绘图工具
import matplotlib.pyplot as plt  #绘图
plt.imshow(wc, interpolation="bilinear")#显示图形
plt.axis("off")#隐藏坐标轴# 将词云图导出到当前目录
wc.to_file(r'E:\Mercy\data\mytest\wc_cn.png')
<wordcloud.wordcloud.WordCloud at 0x18f08300520>

在这里插入图片描述

读取db文件

import sqlite3#连接
conn=sqlite3.connect('message.db')
c=conn.cursor()
#看一看DB文件里有哪些表
tables=c.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall()
print(tables)
[]
#正常执行SQL查询
c.execute("select * from table").fetchall()#关闭
c.close()
conn.close()
---------------------------------------------------------------------------OperationalError                          Traceback (most recent call last)<ipython-input-7-e4488a0f934e> in <module>1 #正常执行SQL查询
----> 2 c.execute("select * from table").fetchall()3 4 #关闭5 c.close()OperationalError: near "table": syntax error

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/73278.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring-cache框架使用笔记

spring-cache框架使用笔记 什么是spring-cache框架 spring-cache是spring框架中的一个缓存抽象层&#xff0c; 它提供了一种简便的方式来集成不同的底层缓存实现&#xff0c; 如内存缓存(concurrentMap/ehcache/caffeine)/分布式缓存(redis/couchbase)等 它简化了在app中使用…

哈工大计算机网络课程网络安全基本原理之:身份认证

哈工大计算机网络课程网络安全基本原理之&#xff1a;身份认证 在日常生活中&#xff0c;在很多场景下我们都需要对当前身份做认证&#xff0c;比如使用密码、人脸识别、指纹识别等&#xff0c;这些都是身份认证的常用方式。本节介绍的身份认证&#xff0c;是在计算机网络安全…

【机器学习】分类算法 - KNN算法(K-近邻算法)KNeighborsClassifier

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;零基础快速入门人工智能《机器学习入门到精通》 K-近邻算法 1、什么是K-近邻算法&#xff1f;2、K-近邻算法API3、…

Tessy 4.3.18

Tessy 4.3.18 windows 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/

使用GGML和LangChain在CPU上运行量化的llama2

Meta AI 在本周二发布了最新一代开源大模型 Llama 2。对比于今年 2 月发布的 Llama 1&#xff0c;训练所用的 token 翻了一倍&#xff0c;已经达到了 2 万亿&#xff0c;对于使用大模型最重要的上下文长度限制&#xff0c;Llama 2 也翻了一倍。 在本文&#xff0c;我们将紧跟趋…

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证&#xff08;第一次连接需要认证&#xff09;2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…

node.js 爬虫图片下载

主程序文件 app.js 运行主程序前需要先安装使用到的模块&#xff1a; npm install superagent --save axios要安装指定版,安装最新版会报错&#xff1a;npm install axios0.19.2 --save const {default: axios} require(axios); const fs require(fs); const superagent r…

Java导出数据到Excel

Java导出数据到Excel分3步处理 1、构建Workbook 数据 2、设置Workbook 格式 3、导出到Excel 1、构建Workbook 数据 public static void buildData(Workbook wb, List<Person> list) {Sheet sheetName wb.createSheet("sheetName");Row row sheetName.creat…

每日一题8.2 2536

2536. 子矩阵元素加 1 给你一个正整数 n &#xff0c;表示最初有一个 n x n 、下标从 0 开始的整数矩阵 mat &#xff0c;矩阵中填满了 0 。 另给你一个二维整数数组 query 。针对每个查询 query[i] [row1i, col1i, row2i, col2i] &#xff0c;请你执行下述操作&#xff1a;…

NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文…

【数据结构】单链表

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、什么是链表 1.1链表的概念及结构 1.2单链表的结构 二、链表的实现 …

[JavaScript游戏开发] 2D二维地图绘制、人物移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 第四章 绘制Q版地图、键盘上下左右地图场景切换 文章目录 系列文章目录前言一、列计划…

SpringBoot中间件—ORM(Mybatis)框架实现

目录 定义 需求背景 方案设计 代码展示 UML图 实现细节 测试验证 总结 源码地址&#xff08;已开源&#xff09;&#xff1a;https://gitee.com/sizhaohe/mini-mybatis.git 跟着源码及下述UML图来理解上手会更快&#xff0c;拒绝浮躁&#xff0c;沉下心来搞 定义&#x…

最新版本mac版Idea 激活Jerbel实现热部署

1.环境准备 1.安装docker desktop 客户端创建本地服务 2.创建guid 3.随便准备一个正确格式的邮箱 2.具体操作 1.通过提供的镜像直接搭建本地服务 docker pull qierkang/golang-reverseproxy docker run -d -p 8888:8888 qierkang/golang-reverseproxy2.guid 通过如下网址直…

干掉 “重复代码”,这三种方式绝了!

来源&#xff1a;我是程序汪 软件工程师和码农最大的区别就是平时写代码时习惯问题&#xff0c;码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码。 业务同学抱怨业务开发没有技术含量&#xff0c;用不到设计模式、Java 高级特性、OOP&#xff0c;平时写…

2.2 身份鉴别与访问控制

数据参考&#xff1a;CISP官方 目录 身份鉴别基础基于实体所知的鉴别基于实体所有的鉴别基于实体特征的鉴别访问控制基础访问控制模型 一、身份鉴别基础 1、身份鉴别的概念 标识 实体身份的一种计算机表达每个实体与计算机内部的一个身份表达绑定信息系统在执行操作时&a…

AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1.1 介绍与安装

部署包作者:秋葉aaaki 免责声明: 本安装包及启动器免费提供 无任何盈利目的 大家好&#xff0c;我是风雨无阻。 众所周知&#xff0c;StableDiffusion 是非常强大的AI绘图工具&#xff0c;需要详细了解StableDiffusion的朋友&#xff0c;可查看我之前的这篇文章&#xff1a; …

剑指offer48.最长不含重复字符的子字符串

我一开始的想法是创建一个大小为26的int数组&#xff0c;下标为0对应的是‘a&#xff0c;25对应的是’z&#xff0c;然后一开始都赋为-1&#xff0c;用一个for循环从头遍历这个字符串&#xff0c;通过char c s.charAt(i)获得字符&#xff0c;然后c-97&#xff0c;就是它对应的…

新抗原预测的计算工作流程

参考文献&#xff1a;Xie N, Shen G, Gao W, Huang Z, Huang C, Fu L. Neoantigens: promising targets for cancer therapy. Signal Transduct Target Ther. 2023 Jan 6;8(1):9. doi: 10.1038/s41392-022-01270-x. PMID: 36604431; PMCID: PMC9816309. 文章目录 *新抗原预测的…

小程序开发趋势:探索人工智能在小程序中的应用

第一章&#xff1a;引言 小程序开发近年来取得了快速的发展&#xff0c;成为了移动应用开发的重要一环。随着人工智能技术的飞速发展&#xff0c;越来越多的企业开始探索如何将人工智能应用于小程序开发中&#xff0c;为用户提供更智能、便捷的服务。本文将带您一起探索人工智能…