秦路《七周》Python部分(109-121) ---- 代码笔记

Shift + Tab: 查看函数的参数

读取数据

pd.read_csv("(文件目录)+文件名",encoding="数据源编码格式,默认utf-8",sep="分隔符,默认是逗号 ',' ")
df.head(n):查看数据框的前n行,默认为5
df.tail(n):查看数据框的末n行,默认为5
df.info():对数据框各列的数据类型进行概览
df.column_name.astype('str/int/float/...'):更改某列的数据类型

简单的数据处理

df.ix/loc/iloc :利用索引筛选数据
df.query('条件').column_name:进行快速筛选
df.T:行列转置
df.sort_values(by = 'column_name'/['column_name1','coumn_name2',...],ascennding = ):按某列或某几列对数据框进行排序
df.sort_index():按索引对数据框进行排序
df.column_name.rank(ascending=,method = 'average/min/max/first'):按某列得到的排名
df.column_name.unique():取某列的唯一值
df.column_name.value_counts():对某列的唯一值进行计数
df.describe:对数据框进行简单的描述统计
df.column_name.cumsum():对某列数值进行累加
pd.cut(df.column_name,bins = 等分数量,lables = '分组标签')
或者pd.cut(df.column_name,bins = (0,5,10,20,100),lables = '分组标签')
pd.qcut():分位数切割

聚合

df.groupby(by = 'column_name').count/max/min/.../mean():按某列聚合出相应方法下的值
for k,v in df.groupby(by = 'column_name1'):
print(max(v.column_name2)-min(v['column_name2']))
print('**' *10) # 分割线

关联

merge、join、concat
1.merge:使用数据框的某一列进行关联
关联列名相同:
df1.merge(right = df2,how = left/right/inner/outer,on='id')
关联列名不同:
df1.merge(right = df2,how = left/right/inner/outer,,left_on = 'left_id',right_on = 'right_id')
pd.merge(left=,right=,how=,on=,left_on=,right_on=)
2.join:使用索引进行关联
df1.join(df2)
3.concat:merge、join常用于左右联结,concat通过参数axis(默认值为0,进行上下联结,1是进行左右联结),通常使用axis=1进行左右联结
pd.concat([df1,df2])

多重索引

假设一个数据框df有两个索引:index1、index2
①df.column_name['index1-value']['index2_value']
②df.loc['index1_value','index2_value']
将字段变为索引:
df.sort_values(by = ['column_name1','column_name2'].index(['column_name1','column_name2'])
将索引变为字段 :使用reset_index()

预处理函数

df.column-name.str[1:-1]:去除文本两边的"[ ]"
(举例:['数据','分析师'] 处理成 '数据','分析师'
df.column_name.str[1:-1].str.replace[" ' ",""]:文本替换
df.fillna(用以替换缺失值的值)
dropna():删除存在缺失值的行
df.duplicated(keep = 'first/last'):寻找重复的数据
df.drop_duplicates():去除重复值

pandas apply

df.salary.apply(lambda x:str(x) + 'k')

以下是按column_name分组,每组的前n个值:
def func(x,n):
r = x.sort_values('salary',ascending=False)
return r[:n]
df.groupby('column_name').apply(func,n=)

df.groupby('column_name').agg(['函数名1','函数名2',...])

数据透视表

df.pivot_table(index = ,columns = ,values = ,aggfunc =)
df.pivot_table(index = ,columns = ,
values = ['column_name1','column_name2'],
aggfunc ={column_name1:np.mean,column_name2:p.sum})

Python连接数据库

安装pymysql模块:
在命令提示符窗口输入:
pip install pymysql

读取数据库

import pymysql
conn = pymusql.connect(host = 'localhost/127.0.0.1',
user = 'user_name',password = ,db = ,port =3306,charset ='utf8')
cur = conn.cursor() #建立游标(sql知识点)
cur.execute('select * from table') #查询数据
data = cur.fetchall() #提取数据
conn.commit() #提交对数据的修改
cur.close() #关闭游标
conn.close() #关闭连接

使用pandas将数据读取为数据框格式:
import pymysql
import pandas as pd
from sqlalchemy import creat_engine
sql = 'select * from table'
engine = create_engine('mysql+pymysql://username:password@localhost:3306/database_name?charset=utf8')
df = pd.read_sql(sql,engine)
也可以包装成函数:
def reader(query,db = 'table_name',sql = query,
engine = create_engine('mysql+pymysql://username:password@localhost:3306/{0}?charset=utf8'.format(database_name))

写入数据库

df.to_sql(name = 'table_name',con ='mysql+pymysql://username:password@localhost:3306/database_name?charset=utf8',
if_exists ='append',index =False)
建议先在数据库里建表设定好字段类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容