此篇文章用于记录在 pandas 学习过程中会用到的一些语法糖,供日后查阅学习!
主要使用 Pandas 结合 SQLServer / Excel /Outlook, 实现数据调取、处理、分析及邮件发送的一系列自动化操作
Jupyter
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本, 本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 可交互性的同时,可很方便地将输入的代码保存下来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 启动 jupyter notebook #渲染矢量图 import matplotlib import matplotlib.pyplot as plt %matplotlib inline %config InlineBackend.figure_format = 'svg' #不想看到那些密密麻麻的代码,只想留下markdown和图表 import IPython.core.display as di di.display_html('<script>jQuery(function() {if (jQuery("body.notebook_app").length |
SQL Server 相结合
使用 Python 链接SQL Server数据库,用于操作数据库,实现自动化运行处理数据。采用 pymssql 包
1 |
import pymssql |
数据操作
- 读取
1 2 3 4 5 6 7 8 9 10 11 |
def get_data_from_sql(sql, columns, server='xxx', database='xxx'): connect_account = {'server': server, 'user': '', 'password': '', 'database': database} conn = pymssql.connect(**connect_account) cursor = conn.cursor(as_dict=True) cursor.execute(sql) result = DataFrame(cursor.fetchall(),columns=columns) cursor.close() return result |
- 插入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 方法一 def insert_data_to_sql(result, sql_delete='', sql_insert='', server='xxx', database='xxx'): connect_account = {'server': server, 'user': '', 'password': '', 'database': database} conn = pymssql.connect(**connect_account) cursor = conn.cursor(as_dict=True) cursor.execute(sql_delete) para = [tuple(i) for i in result.values] cursor.executemany(sql_insert, para) conn.commit() cursor.close() # 方法二,使用pandas的to_sql()方法 engine = create_engine('mssql+pymssql://user:pws@server_name/db_name') data = pd.read_csv('xxxx.csv') data.to_sql('TABLE_NAME', engine, if_exists='append', chunksize=10000) |
- 更新
1 2 3 4 5 6 7 8 9 10 11 |
def update_date(sql_update, server='xxx', database='xxx'): connect_account = {'server': server, 'user': '', 'password': '', 'database': database} conn = pymssql.connect(**connect_account) cursor = conn.cursor() cursor.execute(sql_update) conn.commit() cursor.close() print(sql_update+' 更新成功!') |