帖子

《15天学Python》学习笔记分享园地 | 讯飞AI大学5月主题学习

  [复制链接]
155****3060 发表于 3 天前
471#
#学习分享  5月23号
import pymysql


一、navicat数据库管理软件
二、
1、创建连接对象
conn = pymysql.connect(host = 'localhost', port = 3360, user = 'root', passwd = 'asdgf', db = 'mysql', charset = 'utf-8')
host  IP地址, port 端口 , user 用户名, passwd 密码, db 数据库名称, charse 编码
2、获取游标:

cursor = conn.cursor()
3、获取数据
sql = """SELECT *
             form mysql.test1"""               三个双引号 表示字符串换行
cursor.execute(sql)  执行数据库查询和命令
data1 = cursor.fetchall() 获取结果集所有行   fetchone() 取得结果集下一行 fetchmany(size) 获取size行
df1 = pd.DataFrame(list(data1), colums = ['', '', '',....])  转化成pd的格式
4、传参
num0 = 6
num1 = 8
sql = """SELECT *
             form mysql.test1
             where col2 >={0}
             and col2 <= {1}""".format(num0, num1)               三个双引号 表示字符串换行
cursor.execute(sql)
data1 = cursor.fetchall()
df1 = pd.DataFrame(list(data1), colums = ['', '', '',....])

5、通过跳板机S*H连接数据库


使用道具 举报 回复
136****7663 发表于 3 天前
472#
20200523学习笔记:读写数据-连接MySQL数据库

04.JPG
03.JPG
02.JPG
01.JPG
使用道具 举报 回复
173****6656 发表于 3 天前 来自手机
473#
#学习笔记 5/23  读写mysql库  首先创建一个连接对象  host mysql服务器地址  port为端口号  db类数据库名称  user用户名  passwd密码  charset连接编  游标  execute()执行一个数据库查询和命令  fetchone()取得结果集下一行  fetchmany()取得结果集size行  fetchall()取得结果集所有行
使用道具 举报 回复
166****8309 发表于 3 天前
474#
#学习笔记+5/23
mmexport159****582997.jpg

使用道具 举报 回复
本帖最后由 hzf16321@163.com 于 2020-5-23 23:01 编辑

#学习分享  5月23号

pandas 几种常用读取文件方法:

import pandas  as  pd

1、'read_csv',

pd.read_csv(filepath_or_buffer,sep=[color=rgb(0, 153, 0) !important]',', delimiter=[color=rgb(0, 0, 136) !important]None, header=[color=rgb(0, 153, 0) !important]'infer', names=[color=rgb(0, 0, 136) !important]None, index_col=[color=rgb(0, 0, 136) !important]None, usecols=[color=rgb(0, 0, 136) !important]None, squeeze=[color=rgb(0, 0, 136) !important]False, prefix=[color=rgb(0, 0, 136) !important]None, mangle_dupe_cols=[color=rgb(0, 0, 136) !important]True, dtype=[color=rgb(0, 0, 136) !important]None, engine=[color=rgb(0, 0, 136) !important]None, converters=[color=rgb(0, 0, 136) !important]None, true_values=[color=rgb(0, 0, 136) !important]None, false_values=[color=rgb(0, 0, 136) !important]None, skipinitialspace=[color=rgb(0, 0, 136) !important]False, skiprows=[color=rgb(0, 0, 136) !important]None, nrows=[color=rgb(0, 0, 136) !important]None, na_values=[color=rgb(0, 0, 136) !important]None, keep_default_na=[color=rgb(0, 0, 136) !important]True, na_filter=[color=rgb(0, 0, 136) !important]True, verbose=[color=rgb(0, 0, 136) !important]False, skip_blank_lines=[color=rgb(0, 0, 136) !important]True, parse_dates=[color=rgb(0, 0, 136) !important]False, infer_datetime_format=[color=rgb(0, 0, 136) !important]False, keep_date_col=[color=rgb(0, 0, 136) !important]False, date_parser=[color=rgb(0, 0, 136) !important]None, dayfirst=[color=rgb(0, 0, 136) !important]False, iterator=[color=rgb(0, 0, 136) !important]False, chunksize=[color=rgb(0, 0, 136) !important]None, compression=[color=rgb(0, 153, 0) !important]'infer', thousands=[color=rgb(0, 0, 136) !important]None, decimal=[color=rgb(0, 153, 0) !important]b'.', lineterminator=[color=rgb(0, 0, 136) !important]None, quotechar=[color=rgb(0, 153, 0) !important]'"', quoting=[color=rgb(0, 102, 102) !important]0, escapechar=[color=rgb(0, 0, 136) !important]None, comment=[color=rgb(0, 0, 136) !important]None, encoding=[color=rgb(0, 0, 136) !important]None, dialect=[color=rgb(0, 0, 136) !important]None, tupleize_cols=[color=rgb(0, 0, 136) !important]None, error_bad_lines=[color=rgb(0, 0, 136) !important]True, warn_bad_lines=[color=rgb(0, 0, 136) !important]True, skipfooter=[color=rgb(0, 102, 102) !important]0, doublequote=[color=rgb(0, 0, 136) !important]True, delim_whitespace=[color=rgb(0, 0, 136) !important]False, low_memory=[color=rgb(0, 0, 136) !important]True, memory_map=[color=rgb(0, 0, 136) !important]False, float_precision=[color=rgb(0, 0, 136) !important]None)

marks = pd.read_csv("./marks.csv")


2、'read_excel',
pd.read_excel(io,sheet_name = 0,header = 0,names = None,index_col = None,usecols = None,squeeze = False,dtype = None,)
#方法:默认读取第一个表单
df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出

3、'read_html'

pd.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=None, thousands=', ', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True, displayed_only=True)

常用的参数:
io:可以是url、html文本、本地文件等;
flavor:解析器;
header:标题行;
skiprows:跳过的行;
attrs:属性,比如 attrs = {'id': 'table'};
parse_dates:解析日期

注意:返回的结果是**DataFrame**组成的**list**。


4、 'read_json'
pd.read_json(path_or_buf=None, orient=None, typ='frame', dtype=True, convert_axes=True, convert_dates=True, keep_default_dates=True, numpy=False, precise_float=False, date_unit=None, encoding=None, lines=False, chunksize=None, compression='infer')第一参数就是json文件路径或者json格式的字符串。第二参数orient是表明预期的json字符串格式。orient的设置有以下几个值:(1).'split' : dict like {index -> [index], columns -> [columns], data -> [values]}这种就是有索引,有列字段,和数据矩阵构成的json格式。key名称只能是index,columns和data


使用道具 举报 回复
183****3098 发表于 3 天前
476#
## 第13天学习笔记
最近忙的一批,看来还是个懒狗,最近准备移植IMB的mqtt-paho库,记录下过程

### win10下mqtt的体验
- nodejs的安装
- emq
- node-red
#### nodejs的安装 & node-red
[npm 卸载及安装流程(https://blog.csdn.net/u013591091/article/details/80491809)
[Windows10 node-red环境从零开始配置(node.js、npm环境配置)(https://blog.csdn.net/yong155****6939/article/details/105033931?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase)
**注意选择清华源的ims,npm设置淘宝源**
**注意node脚本执行权限的问题**

#### emq的客户端
[官网(https://www.emqx.io/cn/)选择broker下载
记得账号是`admin`,密码是`public`
本地端口:18083
更多的可以参考[官方文档(https://docs.emqx.io/broker/latest/cn/)

### 体验
在node-red里面设置好服务端,主题名,发送格式样式即可在emq中看到消息流
## 总结
最近要干的活的确很多,,,,


使用道具 举报 回复
185****9901 发表于 3 天前
477#
1.  构造数据框
pd.DateFrame
2.  查看数据框列属性变换
3.  数据框列属性变换
4.  查看索引
df1.index
5.  查看列名
Dfi.columns
6.  列重命名
Df1=df1.rename(columns=[“id1”: “id”])
7.  数据选取
    df1.head()#选取前n行
    df1[1:6]#通过行索引
     df1[“id”,”coll”]通过列名选取
8.  数据塑性(数据可视化)
9.  数据拼接
1、cncat是一种基本的合并方式,axis指明合并方向,axis=0表示上下合并,axis=1 左右合并
2、merge how:连接方式“inner”内连接、“left”左连接“right”右连接
10.分组统计
Def.groupby([分组变量])[统计变量].统计方法

使用道具 举报 回复
186****2052 发表于 前天 01:32
478#
Date2020/5/23 python学习
读写mysql库
1.导入库:import pymysql
import pandas as pd


2.连接库:
conn = pymysql.connect(host = 'localhost', port = 3360, user = 'root', passwd = 'asdgf', db = 'mysql', charset = 'utf-8')
host:服务器地址。port:端口。
user:用户名。passwd:密码。
db:数据库名称。charse:编码。


3.获取游标:
cursor = conn. cursor ()
注:游标是一个游动的标识,可以理解成一条sql取出对应n条结果资源的接口/句柄,沿着游标可以一次取出一行。


4.创建字符串语句:
sq1=""" SELECT*
from mysql. test1"" ''
注:字符串支持换行,可以用'''字符串'''表示。


5.执行字符串语句:
cursor. execute (sq1)
注:execute为常用操作函数,执行一个数据库查询和命令(增、删、改等)


6.获取数据:
取得结果集下一行:fetchone( )
取得结果集size行:fetchmany(size)
取得结果集所有行:fetchall( )


df1=pd. DataFrame (list (data1),columns=[''id", ''col1", "col2''])
注:将数据列表化,并授予列名。


7.关闭游标:cursor.close( )


8.若想传参,可以使用format:
num0=6  num1=8
sq1="" "SELECT*
from mysql. test1 where col2>= {0}
and col2<={1}""" . format (num0, num1)


9.通过跳板机SSH连接连接mysq|
import pymysql
import pandas as pd
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder (
#配置SSH连接
    ssh_ address_or_ host=(' 跳板机对应的地址',int(' 端口号’)),# 指定ssh登录的跳转机的address
    ssh. password='跳转机密码’
    ssh username='跳转机用户’
    local_ bind _address=( 127.0.0. 1', int(' 2222')), #映射到本机的地址和端口,此处必须是是127.0.0. 1
    remote_ bind_address=(' mysql服务器地址’,int('端口号’))) as server:# MYSQL服务器的配置,有数据的服务器
conn = pymysql. connect (host=' 127.0.0.1 ',port=2222,user=' mysql服务器用户名’,password =' mysql服务器密码’)


cursor = conn. cursor ()#获取游标

使用道具 举报 回复
138****8244 发表于 前天 09:09 来自手机
479#
#学习笔记  5月24号
pandas常用数据处理技巧:

字典强转:pd.DataFrame(['a1':[1,2,3],'a2':[4,5,6],'a3':[7,8,9]])

元组:pd.DataFrame([[1,0],(1,6)])

列表:pd.DataFrame([['a1,0],['a2',6]],columns=['col1','col2'])

2. 1查看数据框每列数据类型

df1. dtypes

id    int64

col1    object

col2    int64

dtype: object

2.2查看数据框指定列数据类型

df1. col2. dtypes

dtype(' int64' )

df1

3、数据框列属性变换

df1. col2=df1. col2. astype (int)

df1. col2. dtypes

df1

4、查看索引

df1. index

5、查看列名

list(df1.columns)

6、列重命名

df1=df1.rename(columns={''id1'':''id''})

df1

6、数据选取

6.1选取数据前n行

df1. head() #默认选取前5行

6.2通过行索引

df1[1:6]

6.4通过列名选取数据

df1[["id","col1"]]

df1

6.3加条件选取数据

6.3.1选取带缺失值的数据记录

df1 [df1. isnull(). values=True]

df1 [df1. notnull(). values=True]

6.3.2缺失值填充

df1. fillna(-9999)

6.3.3删除含有缺失值的记录

df1=df1. dropna ()

df1

df1[(df1.col2>6)&(df1.col2<=10)]

      id   col1    col2

5    6    a6      6.0

6    7    a7    7.0

7     8     a8    8.0

9    10   a10    10.0

df1[df1. col2)=6]

df1[~ ((df1.col2>=6) & (df1. col2(=10))]#取非

df1. query(" col2>=6 and col2<=10") #类似sql语句

7、 数据塑形(数据透视表)

df2

pd. pivot_table (df2, index' name' , columns=' date' , values=' money' ,aggfunc=' sum' , fill_ value=0)

df2_new2=pd. pivot_ table (df2, index=' name' , columns=' date' , values=' money' ,aggfunc=' sum' fill _value=0).reset_index()

df2_ new2

8、数据拼接

1、concat是 种基本的合并方式。

常用参数:

axis指明合并方向

axis=0是默认值,0表示上下合并, 1表示左右合并

concat_ datal-pd. Datarae({col1 :list(range (0, 10), "col2”:list( angef0, 10))})

concat_ data2=pd. DataFrame({"col1~ :list(rangel11,1)),''col2'' :list (range(11,17))})

pd. concat([concat _data1, concat_data2],axis=0)#上下拼接时列名尽可能要一致

append函数上下拼接

concat_datal. append(concat_data2).reset indext_index()

merge函数

常用参数:

how:连接方式

''inner''内连接

"left"左连接

''right"右连接

on用于连接的key, 即列名,要连接的数据:必须要都有该列名

left_ on 左侧数据用作连接的键

right_ on右侧数据 用作连接的键

df1=df1. rename (coluns={"id1'':''id''})

8.1内连接

pd. merge (df2, df1, on='id' ,how='innex' )

8.2左连接

pd. nerge (df2, df1, on='id',how='left')

8.3右连接

把left改为right即可。

9.分组统计

df2.groupby([分组变量])[统计变量].统计方法

df2.groupby(['name'])['money].sum()
使用道具 举报 回复
monster 发表于 前天 12:17
480#
#学习笔记  5月23
20200524.jpg
使用道具 举报 回复