学习Pandas,第 9 课

英文原文: 09 - Lesson

从微软的 sql 数据库将数据导出到 csv, excel 或者文本文件中。

  1. # 导入库
  2. import pandas as pd
  3. import sys
  4. from sqlalchemy import create_engine, MetaData, Table, select
  1. print('Python version ' + sys.version)
  2. print('Pandas version ' + pd.__version__)
  1. Python version 3.6.1 | packaged by conda-forge | (default, Mar 23 2017, 21:57:00)
  2. [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]
  3. Pandas version 0.19.2

从SQL数据库抓取数据

这一部分我们使用 sqlalchemy 从 sql 数据库中抓取数据。 请注意,数据库参数你需要自己来修改。

  1. # 参数,修改成你自己的数据库,服务器和表
  2. TableName = "data"
  3. DB = {
  4. 'drivername': 'mssql+pyodbc',
  5. 'servername': 'DAVID-THINK',
  6. #'port': '5432',
  7. #'username': 'lynn',
  8. #'password': '',
  9. 'database': 'BizIntel',
  10. 'driver': 'SQL Server Native Client 11.0',
  11. 'trusted_connection': 'yes',
  12. 'legacy_schema_aliasing': False
  13. }
  14. # 创建数据库连接
  15. engine = create_engine(DB['drivername'] + '://' + DB['servername'] + '/' + DB['database'] + '?' + 'driver=' + DB['driver'] + ';' + 'trusted_connection=' + DB['trusted_connection'], legacy_schema_aliasing=DB['legacy_schema_aliasing'])
  16. conn = engine.connect()
  17. # 查询表所需要的配置
  18. metadata = MetaData(conn)
  19. # 需要查询的表
  20. tbl = Table(TableName, metadata, autoload=True, schema="dbo")
  21. #tbl.create(checkfirst=True)
  22. # Select all
  23. sql = tbl.select()
  24. # 执行 sql 代码
  25. result = conn.execute(sql)
  26. # 数据放到一个 dataframe 中
  27. df = pd.DataFrame(data=list(result), columns=result.keys())
  28. # 关闭连接
  29. conn.close()
  30. print('Done')
  1. Done

所有导出的文件都会被存到 notebook 相同的目录下。

导出到 CSV 文件

  1. df.to_csv('DimDate.csv', index=False)
  2. print('Done')
  1. Done

导出到 Excel 文件

  1. df.to_excel('DimDate.xls', index=False)
  2. print('Done')
  1. Done

导出到 TXT 文本文件

  1. df.to_csv('DimDate.txt', index=False)
  2. print('Done')
  1. Done

This tutorial was created by HEDARO


本教程由派兰数据翻译

These tutorials are also available through an email course, please visit http://www.hedaro.com/pandas-tutorial to sign up today.