pandas 数据结构简介
2018-07-18 本文已影响131人
Stone0823
pandas 数据结构及构建
pandas 主要有两种数据结构: Series
和 DataFrame
。Series
类似一维数组,自带索引。DataFrame
是二维的类似表格的数据结构。
我们先来两个最简单的例子:
import pandas as pd
s = pd.Series(['Java','Python', 'CSharp'])
print (s)
将打印如下值:
0 Java
1 Python
2 CSharp
dtype: object
第一列的 0, 1, 2 是 Series
的 label 或者 index。默认 index 从 0 开始, integer 类型。
DataFrame
一般可以从 Python 的 dict
创建,比如:
data = {
'currency': ['USD', 'HKD', 'JPY', 'NTD'],
'rate': [6, 0.8, 0.06, 0.23]
}
df = pd.DataFrame(data)
print (df)
print 语句将打印如下值:
currency rate
0 USD 6.00
1 HKD 0.80
2 JPY 0.06
3 NTD 0.23
pandas 作为数据分析的利器,更多地是从其他数据源读取数据,从获取的数据创建 Series
或者 DataFrame
。外部数据源常见的包括比如 csv 文件、 Excel 文件或者数据库等等。下面逐一示例。
从 CSV 文件读取数据
df = pd.read_csv('WHO_first9cols.csv')
df.head() # print first 5 lines
WHO_first9cols.csv 文件可以从这里下载。上面的代码在 jupyter notebook 中输出的结果为:
从 Excel 文件读取数据
excel_file = pd.ExcelFile('excel-comp-data.xlsx')
df = pd.read_excel(excel_file, sheetname = 'Sheet1')
df.head()
输出的结果如下:
从数据库表读取数据
DataFrame
提供 read_sql
, read_sql_query
和 read_sql_table
三个方法来从数据库中读取数据。下面演示读取本地 mysql 数据中相关表的数据。
from sqlalchemy import create_engine
DB_URI = 'mysql+pymysql://root:pwd@localhost:3306/stonetest?charset=utf8'
engine = create_engine(DB_URI)
# read table
df = pd.read_sql_table('employees', engine)
如果用其他两种方法,代码如下:
df = pd.read_sql('select * from emp_master', engine)
或
df = pd.read_sql_query('select * from emp_master', engine)