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. DataFrame 的创建
- d = {'One': pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two': pd.Series([1., 2., 4.], index=['a', 'b', 'd'])}
- df = pd.DataFrame(d)
- d = pd.DataFrame(d, index=['a', 'b'])
- d = pd.DataFrame(d, index=['a', 'b'], columns=['two', 'three'])
- # 通过 pd.index 和 pd.columns 可以快速得到 DataFrame 对象所有的索引和列名
- print(df.index)
- print(df.columns)
- # 2. 筛选
- df[df['One']> 1]
- df.loc['a'] # 通过标签选取某一行
- df.loc[['a', 'b'], 'One']
- df.loc[['a', 'd'], 'two']
- 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
来源: http://www.bubuko.com/infodetail-3384014.html