目录

1 概述. 2

2 数据结构:series和dataframe 3

3 数据取值. 4

4 数据操作. 8

5 结构调整. 17

6 统计函数. 19

7 相互关系. 21

8 文件读取. 22

9 数据集操作. 25

10 字符串操作. 28

11 绘图matplot 30

12 时间序列处理. 37

—————我是分割线—————
1 概述

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,主要用于数组运算。支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的,,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
1.1 安装

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
2 数据结构:series和dataframe





Series:一维数组。

DataFrame:二维数组。

Panel:三维数组。
2.1 创建:pd.series(values,index),values是数据,可以是列表、数组、字典等;index默认是range(0,len)。自动增加索引和排序。

pd.DataFrame(values,index,columns)
2.2 查看数据:head(),tail()

2.3 加载和保存:支持execl,csv,sql,hdf等格式。

加载:read,保存:to。
2.3.1 读取csv

def load_csv_app(filename):

"""

日志格式:time type [uri] - ==> Preparing: SQL

2019-11-05 15:38:00,200 DEBUG [framework.system.dao.RoleDao.findList] - ==> Preparing: SELECT a.id, a.office_id AS "office.id", a.name, a.enname, a.func_type, a.data_type, a.remarks, a.create_by AS "createBy.id", a.create_date, a.update_by AS "updateBy.id", a.update_date, a.del_flag, o.name AS "office.name", o.zzjgdm, a.state_flag , ro.office_id AS "officeList.id" FROM sys_role a LEFT JOIN sys_office o ON o.id = a.office_id LEFT JOIN sys_role_user ur ON ur.role_id = a.id LEFT JOIN sys_user u ON u.id = ur.user_id LEFT JOIN sys_role_office ro ON ro.role_id = a.id WHERE a.del_flag = ? AND a.state_flag=? AND u.id = ? AND u.login_name = ? ORDER BY o.sort, a.name

"""

df = pd.read_csv(

filename,

sep='Preparing: ',

engine='python',

na_values='-',

header=None,

usecols=[0,1],

names=['info', 'sql'],

converters={

'info': parse_info,

'sql': parse_sql

}

)

return df
2.4 子集:at/iat[行序号,列序号],loc/iloc[行序号:行序号,列序号:列序号]

2.5 分组:groupby

2.6 增加新数据行

x = pd.DataFrame()

event = {}

event['a'] = 2

event['b'] = 3

x = x.append(event,ignore_index=True)
3 数据取值

数据取值按照行、列索引的原则分别取值
3.1 删除指定索引值的数据:drop





3.2 取行值,列值:索引或loc,iloc,ix;取行列值的ix方式已废弃,使用loc,iloc替代。





3.3 元素存取:iat,at(替代原get_value,set_value)





3.4 条件取值,bool矩阵取值:按照指定的条件或矩阵选择数据





3.5 mysql操作:sqlalchemy

pandas使用sqlalchemy、pymysql操作mysql数据库。

pymysql:实现Python能够操作MySQL数据库。

sqlalchemy:实现与不同数据库的连接。当前的推荐用法。

创建连接:create_engine()

pandas读取数据:read_sql_query()函数实现了对数据库的查询。

pandas写入数据:to_sql()函数实现了对数据库的写入。

1) 安装

pip install pandas

pip install sqlalchemy

pip install pymysql

2) 连接

import pandas as pd

from sqlalchemy import create_engine

# 初始化数据库连接

# 按实际情况依次填写MySQL的用户名、密码、IP地址、端口、数据库名

engine = create_engine('mysql+pymysql://root:12345678@localhost:3306/testdb')

# 如果觉得上方代码不够优雅也可以按下面的格式填写

# engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format('root', '12345678', 'localhost', '3306', 'testdb'))

3) 取值

# MySQL导入DataFrame

# 填写自己所需的SQL语句,可以是复杂的查询语句

sql_query = 'select * from product;'

# 使用pandas的read_sql_query函数执行SQL语句,并存入DataFrame

df_read = pd.read_sql_query(sql_query, engine)

print(df_read)

4) 写入磁盘

df_read.to_csv('story3.csv', encoding = 'utf-8', index = False)

5) 写入数据库

# DataFrame写入MySQL

# 新建DataFrame

df_write = pd.DataFrame({'id': [10, 27, 34, 46], 'name': ['张三', '李四', '王五', '赵六'], 'score': [80, 75, 56, 99]})

# 将df储存为MySQL中的表,不储存index列

df_write.to_sql('testdf', engine, index=False)
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 售后服务
    • 关注我们
    • 社区新手

    QQ|手机版|小黑屋|数据通

    Powered by datatong.net X3.4  © 2008-2020 数据通