Pandas数据分析 (一)

Series 和 DataFrame

Pandas库基本运用

  •   Series 包含一维索引的一组数据

  •   DataFrame 包含 index 和 column 两个轴

  •   Panel 一种三维数据容器

import pandas as pd
import numpy as np
from pandas import Series, DataFrame

Series

# 1. 创建 Series 对象,从列表创建
s1 = pd.Series([100, 78, 59, 63])
# values 和 index 属性可以得到Series的数据和索引
s1.values
s1.index

# 2. 创建Series对象,从ndarry创建
# 指定的index必须与data长度相等
pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

# 3. 从字典创建
d = {'a':0.12, 'b':0.33, 'c':-0.15}
pd.Series(d)

# 4. 将标量传入 data后,所有的索引对应的值都将会是该标量
pd.Series(2, index=['c', 's'])
View Code

  series的算术运算

   Series 在算术运算中 会自动对齐 不同索引的数据

s1 = pd.Series([1, 2, 4, 5], index=['a', 'b', 'c', 'd'])
s2 = pd.Series([2, 3, 5, 6], index=['c', 'a', 'b', 'd'])
s1 + s2
View Code

  唯一值个数统计

   用 unique() 函数,其返回结果为一个数组,包含Series去重后的元素 跟 unique() 函数,相似的另一个函数是 value_counts(), 它可以查看每一个唯一元素频数

s3 = pd.Series(data=['a', 'a', 'b', 'b'])
s3.unique()
View Code

  转换数据类型  

   astype()函数可以转换数据类型

s4 = pd.Series(data=['1.3', '2.2'])
s5 = s4.astype('float32')

DataFrame

 1 # 1. DataFrame的创建
 2 d = {'One': pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two': pd.Series([1., 2., 4.], index=['a', 'b', 'd'])}
 3 df = pd.DataFrame(d)
 4 
 5 d = pd.DataFrame(d, index=['a', 'b'])
 6 
 7 d = pd.DataFrame(d, index=['a', 'b'], columns=['two', 'three'])
 8 # 通过 pd.index 和 pd.columns 可以快速得到DataFrame对象所有的索引和列名
 9 print(df.index)
10 print(df.columns)
11 
12 # 2. 筛选
13 df[df['One'] > 1]
14 
15 df.loc['a']  # 通过标签选取某一行
16 df.loc[['a', 'b'], 'One']
17 df.loc[['a', 'd'], 'two']
18 df.loc[:, 'One']
View Code

Panel

1 pnl = pd.Panel([[[10000,20000],[20000,23000],[40000,34000]],[[2,1],[0,0],[3,4]]], items=['营业额', '出差次数'], major_axis=['1月','2月','3月'], minor_axis=['张三','李四'])
View Code

猜你喜欢

转载自www.cnblogs.com/xmdykf/p/12203301.html