自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (9)
  • 收藏
  • 关注

原创 VBA常用代码 - 03

1、输入日期,返回周几和该月剩余工作天数Sub test() Dim dt As Date, t1 As Integer, t2 As Date, i As Date, temp As Integer dt = Application.InputBox("请输入日期:" & Chr(10) & _ "如:2021-09-08", _ "选择日期", "2021-09-08", , , , 1) t1 = Weekday(dt, 2)

2021-09-25 18:33:28 434 1

原创 python 字段错位的处理

需要解决的问题:import pandas as pdimport numpy as npdf = pd.DataFrame([[1,np.nan,3],[4,5,6],[7,np.nan,9]],columns=['A','B','C'])print(df)怎样将0、2行 B 、C列数值替换A、B 两列的数值 (即数据左移一列)?一、方法介绍所使用的方法:将需要错位的数据块筛出构造新表,采用2表 更新的方式(一)、错位块的处理方式(将错位的地方换回来)1、整列赋值的方

2021-09-16 16:35:35 1226

原创 狗狗评分分析

一、项目简介(一)项目情况推特用户 @dog_rates 的档案也叫做 WeRateDogs。以诙谐幽默的方式对人们的宠物狗评级。这些评级通常以 10 作为分母。但是分子呢?分子一般大于 10。如11/10、12/10、13/10 等,WeRateDogs 拥有四百多万关注者,曾受到国际媒体的报道。WeRateDogs 推特档案包括基本的推特信息,如 5000 多条推特,但并不包括所有数据,转发用户和喜爱用户是两个遗漏的列。不过档案中有一列包括每个推特文本,可以用来提取评级、狗的名字和 "地位" (

2021-09-05 14:54:38 450

原创 tableau 配置TabPy服务器-2021年

1、TabPy安装下载安装TabPy包,方式如下1)pip install tabpy2)github下载zip、tar.gz或者.whl 包进行安装,下载地址地址:https://github.com/tableau/TabPy2、TabPy服务器启动对于tabpy-2.3.1之后的版本,cmd命令行直接输入:tabpy(若报错可能需要设置环境变量),得到以下情况注:其他个性设置及文档说明见:https://tableau.github.io/TabPy/3、Tabl.

2021-08-13 00:10:36 696

原创 Power BI中怎样使用Python

一、下载python,并在Power BI中设置Power BI中配置Python运行环境,及正确设置环境变量的方法,见链接:https://hgdata.blog.csdn.net/article/details/104877044二、运用python作图1、点击Power BI 右边可“Python visual”,将需要作图的数据勾选上,这里是字段:x、y此时下面会出现编辑框:提示将x,y赋值给了dataset,后续将用dataset 进行操作2、输入以下代码,点击运..

2021-08-12 16:40:23 4608

原创 Tableau中怎样使用R语言

一、安装配置1、下载R语言2、安装包install.packages('Rserve')library('Rserve')Rserve()3、tableau设置在tableau中:帮助-设置与性能-管理外部服务器中可连接R/Python输入“Localhost”(或“127.0.0.1”)服务器名称和端口“6311”点击“测试连接”,出现下面情况则配置成功二、tableau 中使用R进行分析1、原数据情况与处理后数据情况1)原数据2)处理生.

2021-08-12 15:14:33 729

原创 获取7日留存率

一、数据情况:二、处理1、分步进行--1 目标日所有的用户情况,存储到临时表:temp1 DROP TABLE IF EXISTS temp1; CREATE TEMPORARY TABLE temp1 select date_user as target_date, user_id as uid1 from user where DATE_user ='2020-01-01'; --目标日所有用户数,存储到变量@temp SELECT @temp := COUNT(u.

2021-05-23 18:49:28 316

原创 实例4:python获取所有excel表的字段

import osimport xlwings as xwimport timetime_start = time.time()path = r'D:\Cong Ma\vscode_document\test1_combine_first_column'# 一、获取文件名字files = os.listdir(path) # 获取所有文件名,包括文件夹# 二、遍历excel,复制第一行到新表i = 1app = xw.App( visible=True, add_book=Fal.

2021-04-14 00:38:51 582 2

原创 SQL Server - 函数用法

一、简单介绍SQL Server自定义函数分为三种类型: 标量函数(Scalar Function)、内嵌表值函数(Inline Function)、多语句表值函数(Multi-Statement Function)。1. 标量函数: 标量函数是对单一值操作,返回单一值。能够使用表达式的地方,就可以使用标量函数。像我们经常使用的left、getdate等,都属于标量函数。系统函数中的标量函数包括:数学函数、日期和时间函数、字符串函数、数据类型转换函数等。2.表值函数:1)内嵌表值...

2021-04-11 12:50:55 996

转载 MySQL建表的约束条件,浅谈not null 和 default的关系

MySQL在建表时,需要有字段名称、字段类型和约束条件,其中字段名称和字段类型是必填的,约束条件是选填的,约束条件主要有primary key、unique、not null、default等, 一个完整的建表语句如下:create table employees( 工号 varchar(4) primary key, 姓名 varchar(10) not null , 年龄 int defalut 18);约束条件分别为:工号作为主键,姓名非空,年龄默认为18,建完表后,可以向表里插入输入,例如:

2021-04-11 10:59:48 4156

原创 SQL 查询练习(共9题)

请书写实现以下查询的SQL脚本: 查询“01”课程比“02”课程成绩高的所有学生的学号; 查询平均成绩大于60分的同学的学号和平均成绩; 查询所有同学的学号、姓名、选课数、总成绩; 查询课程编号“01”的成绩比课程编号“02”课程低的所有同学的学号、姓名; 查询没学过“张三”老师课的同学的学号、姓名; 合并4个表中的所有信息生成一个新表,且新表中的Sid列的值是唯一的; 在student表中增加一列年龄字段,列出每位学生的年纪;

2021-04-09 17:58:39 1444

原创 实例3:python 删除excel中的多余列

# 一、创建目录(文件夹)def mkdir(root, folder): # 去除两端空白字符--如果strip()的参数为空,那么会默认删除字符串头和尾的空白字符(包括\n,\r,\t) root = root.strip() # 判断路径是否存在,存在:True、不存在:False isExists = os.path.exists(root+'/'+folder) # 判断结果 if not isExists: # 如果不存在则创建目..

2021-03-24 18:13:18 7018

原创 实例2:python操作Excel文件 - 插入列、分列、删除列、移动位置

一、数据情况及要求1、原数据情况2、要求将“科目”分列,构造出科目代码 删除A列内容 将数据整体下移1单元格,右移动2单元格3、最后结果二、python实现过程1、选择库此处用openpyxl来操作,该库使用范围如下:特别注意:openpyxl不能操作 .xls 文件2、代码import openpyxl # openpyxl只能打开xlsx文件path = r'C:\个人文件夹\Data analysis learning\skit-lea.

2021-03-23 15:54:42 4865 3

原创 实例1:python读取文件夹里的文件

一、文件夹内容如下:1级:2级:3级:只有“二级文件夹1”下有文件二、测试1、os.listdir(path):只读取该路径path下的所有文件名(包括文件夹名、文件名,不包括子文件夹下的内容),结果会按字母排序import os path = r'C:\个人文件夹\Data analysis learning\skit-learn\Workspace\document_vscode\test'files_1 = os.listdir(path)files_1.

2021-03-22 20:56:31 5040 2

原创 python处理Excel 电子表格

一、读取电子表格# 1 打开excel文档import openpyxlwb = openpyxl.load_workbook(r'D:\XXX\spider_document\example.xlsx')type(wb)# 2 从工作簿中取得工作表import openpyxlwb =openpyxl.load_workbook(r'D:\XXX\spider_document\example.xlsx')wb.get_sheet_names()sheet = wb.get_she

2021-03-21 21:25:32 511

原创 数据分析-python基于Excel的操作

import pandas as pdinputfile = r'D:\XXX\data_analysis\SDC DA Assessment - Data Analysis & Visualization.xlsx.xlsx'outputfile = r'D:\XXX\data_analysis\result' # 结果文件# 导入excel文件pwc_orders = pd.read_excel(inputfile, header =0, sheet_name=0)pwc_r.

2021-03-21 20:48:09 231

原创 VBA 常用代码 - 01

1、运用VBA.Split() 给字符串分列,选取第一部分例:“101203\其他货币资金\低于等于3个月的流动性理财存款”,选取“101203”Sub test()Dim rows As Integer '声明变量rows = Range("A1048576").End(xlUp).Row '数据的最下边位置'Range("c1") = rowsFor i = 1 To rows If (Range("B" & i) = "") Then Rang

2021-02-08 20:25:31 1323

原创 05-爬虫进阶_selenium(06 selenium行为链)

行为链将一系列操作整合,然后统一执行(感觉类似excel中的“宏”)。有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件。那么示例码如下:inputTag=driver.find_elenent_by.id("kw")submitTag=driver.find_elenent_by_id("su")actions=ActionChains(driver)actions.move_...

2021-01-20 00:28:26 97

原创 05-爬虫进阶_selenium(05 selenium操作表单元素)

一、常见的表单元素input:type='text/password/emai1/number' buttton:input[type='submit'] checkbox:input='checkbox' select:下拉列表二、操作表单元素1、操作输入框:分为两步,第一步:找到这个元素。第二步:使用sena_keys(valuve),将数据填充进去。示例代码如下:inputTag=driver.find_element_by_id(kw)inputTag_send...

2021-01-20 00:09:26 613

原创 05-爬虫进阶_selenium(01 - 04:爬AJAX数据的方法、selenium+chromedriver安装、关闭页面和浏览器、定位元素)

待分享

2021-01-17 21:41:20 301

原创 05-爬虫进阶_tesseract代码识别图片

tesseract代码识别图片一、安装库:在python代码中操作tesserect。需要安装一个库,叫做pytesseract。通过pip的方式安装:pipinstallpytesseract并且读取图片,需要供助一个第三方库叫做PIL。通过piplist看下是否安装。如果没有安装,通过pip的方式安装:pipinstallPIL二、使用示例使用pytesseract将图片上的文字转换为文本文字的示例代码如下:1、识别英文# encoding: u...

2021-01-17 21:31:22 168

原创 05-爬虫进阶_selenium(09 selenium打开多窗口和切换窗口)

selenium打开多窗口和切换窗口切换页面:有时候窗口中有很多子tab页面,这时候肯定是需要进行切换的。selenium提供了一个叫switch_to_window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到,示例代码如下:#打开一个新的页面se1f.driver.execute_script("window.open('"+url+"')")#切换到这个新的页面中se1f.driver.switch_to_window(se1f.dri..

2021-01-17 21:07:27 275

原创 05-爬虫进阶_selenium(11 selenium中的WebElement类补充)

selenium中的WebElement类补充WebElement元素:fromselenium.wedriver.remote.webelementimportWebElenent类是每个获取出来的元素的所属类。有一些常用的属性:get_attribute:这个标签的某个属性的值。 screentshot:获取当前页面的截图。这个方法只能在driver上使用。driver的对象类,也是继承自WebElement。代码举例1:打印出submitBtn的类型from s...

2021-01-17 21:07:04 482

原创 05-爬虫进阶_selenium(10 selenium使用代理IP)

selenium使用代理IP设置代理IP:有时候频繁爬取一些网页,服务器发现你是爬虫后会封掉你的ip地址,这时候我们可以更改代理ip。更改代理ip,不同的浏览器有不同的实现方式。这里以Chrome浏览器为例:以下是某代理IP网站搜索到的代理IP:以下是代码:from selenium import webdriverdriver_path = r"D:\application\chromedriver_win32\chromedriver.exe"options...

2021-01-17 20:58:38 796

原创 05-爬虫进阶_selenium(08 selenium的隐式等待和显式等待)

selenium的隐式等待和显式等待页面等待:现在的网越来越多采用了Ajax技术,这样程序便不能确定何时某个元素完全加载出来了。如果实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个WebElement,那么就会抛出Nullpointer的异常。为了解决这个问题。所以Selenium提供了两种等待方式:一种是隐式等待、一种是显式等待。1、隐式等待:调用driver.inplicitly_wait.那么在获取不可用的元素之前,会先等待10秒中的时间。示例代码如下:fr

2021-01-17 20:20:36 142

原创 05-爬虫进阶_selenium(07 selenium操作cookie)

Cookie操作:1、获取所有的cookie:forcookieindriver.get_cookies()print(cookie)2、根据cookie的key获取value:value=driver.get_cookie(key)3、删除所有的cookie:driver.delete_all_cookies()4、删除某个cookie:driver.delete_cookie(key)示例:fromseleniumimportw...

2021-01-17 18:58:08 100

原创 05-爬虫进阶_多线程(04 【实战】斗图啦)

目标:从网站斗图啦下载表情包斗图啦网页示例:1、多线程下载表情包之同步爬虫完成importrequestsfromlxmlimportetreefromurllibimportrequest#保存图片importos#为获取后缀名字importre#替换掉文件名中的特殊字符#url='https://www.doutula.com/photo/list/'defparse_page(url):headers={'User...

2020-09-11 15:05:58 76

原创 05-爬虫进阶_多线程(03 GIL全局解释器锁)

GIL全局解释器锁:Python自带的解释器是Cpython。CPytnon解释器的多线程实际上是一个假的多线程(在多核CPU中,只能利用一核,不能利用多核),同一时刻只有一个线程在执行,为了保证同一时刻只有一个线程在执行,在Cython解释器中有一个东西叫GIL(Global Intepreter Lock),叫做全局解释器锁,这个解释器锁是有必要的,因为Cpython解释器的内存管理不是线程安全的。当然除了Cpython解释器,还有其他的解程器,有些解拜释是没有GIL的,见下面:1、Dythen

2020-09-11 14:54:01 106

原创 05-爬虫进阶_多线程(02 生产者与消费者模式、线程安全队列)

1-Lock版生产者和消费者模式生产者和消费者模式是多线程开发中经常见到的一种模式。生产者的线程专门用来生产一些数据,然后存放到一个中间的变量中。消费者再从这个中间的变量中取出转握进行消费,但是因为要使用中间变量,中间变量经常是一些全局交量,因此需要使用锁来保证数据完整性。Lock版生产者和消费者模式缺点:不停的解锁、加锁比较耗资源。例如,爬虫:生产者:专门获取url 消费者:专门获取并解析响应 以下是使用threading.Lock锁实现的生产者与消费者模式的一个例子:..

2020-09-11 14:30:58 78

原创 05-爬虫进阶_多线程(01 基本用法)

1-多线程概念和threading模块介绍多线程爬虫有些时候,比如下载图片,因为下载图片是一个耗时的操作,如果采用之前那种同步的方式下载。那效本育会特别慢。这时候我们款可以考虑使用多线程的方式未下图片多线程介绍多线程是为了同步完成多项任务,通过提高资源使用效事来提高系统的效率。线程是在同一时间要完成新任务的时候实现的。最简单的比喻多线程就像火车的每一节车题,而进程则是火车,车厢离开火车是无法跑动的,同理火车也可以有多节车。多线程的出现就是为了提高效率,同时它的出现也带来了一些问题。thr

2020-09-11 14:30:36 64

原创 【数据解析实战】_糗事百科(爬取所有页)

目标:爬取糗事百科的“段子”数据糗事百科页面:1、正则方法#-*-coding:utf-8-*-# 正则方法import requestsimport reimport timebase_url = 'https://www.qiushibaike.com'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ...

2020-09-10 23:07:49 216

原创 03-数据解析_正则表达式(04 【实战】糗事百科爬虫)

目标:爬取糗事百科的“段子”数据糗事百科页面:代码:

2020-09-10 22:55:12 58

原创 03-数据解析_正则表达式(03 【实战】古诗文网爬虫)

注意:用正则的思路不一样:不存在树结构,在正则眼里只当作‘str’ 关注zip的用法

2020-09-10 22:49:52 126

原创 04-数据存储(01 python对象与json字符串的转换、保存读取)

1、Json简介:什么是json:JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机图解析和生成,并有效地提升网络传输效率。JSON支持数据格式:1.对象(字典)。使用花括号。2.列表(数组)。使用方括号。3.整形、浮点型。4.字符串

2020-09-10 15:37:43 251

原创 04-数据存储(02 csv文件的读取写入)

1、CSV文件简介2、读取CSV文件的两种方式使用数据:test.csv,内容如下:产品编号,产品名称,品牌,类别,采购价格,零售价格1001,小米手机,小米,手机,1800,20001002,小米电脑,小米,电脑,4700,52001003,小米平板,小米,平板,1300,15002001,苹果手机,苹果,手机,6000,80002002,苹果电脑,苹果,电脑,8000,100002003,苹果平板,苹果,平板,2200,30003001,三星手机,三星,手机,3600,.

2020-09-10 15:27:36 167

原创 03-数据解析_正则表达式(02 正则运用案例)

正则运用小案例:1、验证手机号码:手机号码的规则是以1开头,第二位可以是34587,后面服9位就可以随意了,示例代妈如下:text='18570631587'ret=re.match('1[34587]\d{9}',text)print(ret.group())#18570631587而如果是个不满足条件的手机号码,那么就匹配不到了,示例代码如下:text='1857063158'ret=re.match('1[34587]\d{9}',tex...

2020-09-10 14:18:42 128

原创 03-数据解析_正则表达式(01 基本用法)

1-正则表达式之单个字符匹配规则import re1、匹配某个字符串text = 'hello'ret = re.match('he', text)print(ret.group())结果:>>> print(ret.group())he2、点:匹配任意的字符text = 'hello'ret = re.match('.', text)print(ret.group())结果:>>> print(ret.group())h3、

2020-09-10 10:50:14 196

原创 03-数据解析_BeautifulSoup+CSS选择器(03 【实战】 中国天气网爬虫)

爬取中国天气网所有城市的数据,并进行可视化注意:1、中国天气网没有设置反爬虫机制2、对于香港的数据,再网页源码中有<table>,无</table>,再浏览器的元素中,是浏览器自动加的此时用‘lxml’解析器会出错(因为lxml容错能力较差),此时应该用‘html5lib’解析器(容错能力较强)安装方法:pip instail html5lib语句:soup = BeautifulSoup(text,'html5lib')#需求:爬取中国天气网各城市.

2020-09-08 18:11:16 131

原创 03-数据解析_BeautifulSoup+CSS选择器(01 BeautifulSoup)

1-BeautifulSoup4库的基本介绍注意:一旦加载,beautifulsoup会自动建立模型,所以开销较大;lxml是C语言编写,速度较快。2-BeautifulSoup4库的基本使用简单使用:from bs4 import BeautifulSouphtml = """ <a href="https://www.doutula.com/article/detail/6394359" class="list-group-item random_list t...

2020-09-08 18:05:13 133

原创 03-数据解析_BeautifulSoup+CSS选择器(02 select和css选择器)

1-css常用选择器介绍select方法:有时使用css选择器的方式可以更加的方便。使用css选择器的语法,应该使用select方法。在BeautifulSoup中,要使用css选择器,那么应该使用“soup.select()”方法,应该传递一个css选择器的字符串给select方法以下列出几种常用的css选择器方法:1)通过标签名查找:print(soup.select("a"))2)通过类名查找:通过类名,则应该在类的前面加一个“.”。比如查找class-sister的标.

2020-09-08 17:33:06 186

project_excr_01 所用资源

project_excr_01 所用资源(twitter、dogs)

2021-08-16

twitter_archive_master.csv

project_excr_02 所用资源

2021-08-16

Retention.csv

运用SQL取得7日留存率

2021-05-24

test3_combine_first_colum.zip

实例4:python获取所有excel表的字段(相关资源)

2021-04-14

数据分析-python基于Excel的操作

数据分析-python基于Excel的操作(所用资源)

2021-03-30

实例1:python读取文件夹里的文件

实例1:python读取文件夹里的文件

2021-03-25

实例3:python 删除excel中的多余列

实例3:python 删除excel中的多余列(所用数据)

2021-03-25

sales_data.xls

决策树【Chapter 6 相关】、 人工神经网络 【Chapter 10 相关】所使用的练习数据 决策树【Chapter 6 相关】、 人工神经网络 【Chapter 10 相关】所使用的练习数据

2020-07-12

Facebook 签到数据

3_KNeighbors 建模所使用的数据 - Facebook 签到数据

2020-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除