[python package]Pandas & matplotlib

Pandas

作为金融数据分析工具而开发, 可以轻松解决数据预处理问题.
pandas可以进行统计特征的计算, 包括均值 方差 分位数 相关系数 和 协方差

mean()
std()
cov() # 用于计算样本数据的协方差矩阵
car()
describe() # 用于描述样本数据的基本情况

series and dataframe

series是1维的, dataframe是2维的, panel是三维或更高的数据结构.
series是一个带标签的一维数组, 可以存储任意类型的数据, 行标签被称为 index.
dataframe可以看作多个不同类型的series的集合

series

import pandas as pd
import numpy as np
s1 = pd.Series(np.array([10.5, 20.5, 30.5]))
s2 = pd.Series({'beijing': 10, 'shanghai': 20})
s3 = pd.Series([10, 20, 30], index=['a', 'b', 'c']) # 手动给出行标签命名

dataframe

创建方法:

a = np.arange(1, 7).reshape(3. 2)
df1 = pd.DataFrame(a)
df2 = pd.DataFrame(a, index=['a', 'b', 'c'], columns=['x', 'y'])
df3 = pd.DataFrame({'x1':a[:, 0], 'x':a[:, 1]})

文件存取

可以是csv, txt或者excel表格

text file

使用函数 read_csv.
主要参数如下:

  1. filepath_or_buffer: 可以为URL(http, ftp)
  2. sep: 默认逗号
  3. delimiter: 备选分隔符
  4. header:
    None -> 原始数据文件没有列标题
    0 -> 文件第一行为列标题
    [0, 1, 3] -> 1, 2, 4行作为标题(意味着有多个列标题)
  5. index_col
  6. skiprows: 指定需要跳过的开头行数
  7. skipfooter: 执行需要跳过的末尾行数
  8. na_values: 指定哪些值作为缺失值
    etc.

excel

read_excel()
常用调用格式为:
read_excel(io, sheet_name=0, header=0, names=None, index_col=, parse_cols=, usecols=, dtype=)

数据子集的获取

iloc, loc

iloc智能通过行号和列号进行数据的筛选, loc可以指定具体的行标签或者列标签.

a = pd.read_excel('data.xlsx', usecols=range(1, 4))

b1 = a.iloc[np.arange(6), [0, 1]]
b2 = a.loc[np.arange(6), ['usera', ['userb']]]

Matplotlib

matplotlib提出了object container的概念, 有figure, axes, axis, tick四种类型的对象容器.
figure扶着图形大小, 位置
axes负责坐标轴位置, 绘图
axis负责坐标轴的设置等
tick负责格式化刻度样式等
四种对象类型之间是层层包含的关系.'

basic usage

matplotlib.pyplot

画折线图: plot(x, y, s)
x, y为坐标, s为指定线条颜色样式和数据点形状的字符串.
也可以使用可读性更好的详细参数列表代替字符串s.

除此之外, pyplot还有如下常用函数:

  1. pie()饼状图
  2. bar()柱状图
  3. hist()二维直方图
  4. scatter()绘制散点图

matplotlib刻意将面向对象的图形库包装成了只是用函数的API, 可以使用gcf(), gca()获得当前图形以及当前子图(Get current figure Get current axes)

使用流程示例:

import numpy as np, pandas as pd
import matplotlib.pyplot as plt

a = pd.read_excel('data.xlsx', usecols=range(1, 4))
c = np.sum(a) # 求每一列的和
ind = np.array([1, 2 ,3]); width = 0.2
plt.rc('font', size=16)
plt.bar(ind, c, width)
plt.ylable('消费数据')
plt.xticks('usera', 'userb', 'userc', rotation=20) # 旋转20度
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示中文
plt.savefig('figure2_36.png', dpi=500)
plt.show()

file

可视化应用

多个图形显示在一个图形画面

x = np.linspace(0, 2 * np.pi, 200)
y1 = np.sin(x)
ys = np.cos(pow(x, 2))
plt.rc('font', size=16)
plt.rc('text', usetex=True)
plt.plot(x, y1, 'r', lable='$sin(x)$', linewidth=2)
plt.plot(x, y2, 'b--', label='$cos(x^2)')
plt.xlabel('$x$'); plt.ylabel('$y$', rotation=0)
plt.savefig('tmp.png', dpi=500); plt.legend(); plt.show()

file

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇