Python 数据科学基础 -Pandas 介绍
Pandas 介绍
Pandas
什么是 Pandas?
Pandas 的名称来自于面板数据(panel data)和 Python 数据分析(data analysis)。
Pandas 是一个强大的分析结构化数据的工具集,基于 NumPy 构建,提供了 高级数据结构 和 数据操作工具,它是使 Python 成为强大而高效的数据分析环境的重要因素之一。
1.一个强大的分析和操作大型结构化数据集所需的工具集
2.基础是 NumPy,提供了高性能矩阵的运算
3.提供了大量能够快速便捷地处理数据的函数和方法
4.应用于数据挖掘,数据分析
5.提供数据清洗功能
Series
1.Pandas 的数据结构
import pandas as pd
Pandas 有两个最主要也是最重要的数据结构: Series 和 DataFrame
2.Series
简要介绍
1.Series 是一种类似于一维数组的 对象,由一组数据(各种 NumPy 数据类型)以及一组与之对应的索引(数据标签)组成。
2..类似一维数组的对象
由数据和索引组成
索引(index)在左,数据(values)在右
索引是自动创建的
2.1. 通过 list 构建 Series
ser_obj = pd.Series(range(10))
示例代码:
# 通过 list 构建 Series
ser_obj = pd.Series(range(10, 20))
print(ser_obj.head(3))
print(ser_obj) #打印全部的 9 个值
print(type(ser_obj))
2.2 获取数据和索引
ser_obj.index 和 ser_obj.values
示例代码:
# 获取数据
print(ser_obj.values)
# 获取索引
print(ser_obj.index)
运行结果:
[10 11 12 13 14 15 16 17 18 19]
RangeIndex(start=0, stop=10, step=1)
3. 通过索引获取数据
ser_obj[idx]
示例代码:
#通过索引获取数据
print(ser_obj[0])
print(ser_obj[8])
运行结果:
10
18
4. 通过 dict 构建 Series
示例代码:
# 通过 dict 构建 Series
year_data = {2001: 17.8, 2002: 20.1, 2003: 16.5}
ser_obj2 = pd.Series(year_data)
print(ser_obj2.head())
print(ser_obj2.index) #Int64Index([2001, 2002, 2003], dtype='int64')
S4=pd.Series(dict(zip([1,2,3],["a","b","c"]))) print(S4)
6.name 属性
对象名:ser_obj.name
对象索引名:ser_obj.index.name
示例代码:
# name 属性
ser_obj2.name = 'temp'
ser_obj2.index.name = 'year'
print(ser_obj2.head())
Pandas-DataFrame
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同类型的值。DataFrame 既有行索引也有列索引,它可以被看做是由 Series 组成的字典(共用同一个索引),数据是以二维结构存放的。
1.类似多维数组/表格数据 (如,excel, R 中的 data.frame)
2.每列数据可以是不同的类型
3 索引包括列索引和行索引
1. 通过 ndarray 构建 DataFrame
示例代码:
import numpy as np
# 通过 ndarray 构建 DataFrame
array = np.random.randn(5,4)
print(array)
df_obj = pd.DataFrame(array)
print(df_obj.head())
可以通过 columns 改变列名
可以通过 index 改变行的名字
2. 通过 dict 构建 DataFrame
示例代码:
# 通过 dict 构建 DataFrame
dict_data = {'A': 1,
'B': pd.Timestamp('20170426'),
'C': pd.Series(1, index=list(range(4)),dtype='float32'),
'D': np.array([3] * 4,dtype='int32'),
'E': ["Python","Java","C++","C"],
'F': 'ITCast' }
#print dict_data
df_obj2 = pd.DataFrame(dict_data)
print(df_obj2)
3. 通过列索引获取列数据(Series 类型)
df_obj[col_idx] 或 df_obj.col_idx
示例代码:
# 通过列索引获取列数据
print(df_obj2['A'])
print(type(df_obj2['A']))
print(df_obj2.A)
4. 增加列数据
df_obj[new_col_idx] = data
类似 Python 的 dict 添加 key-value
示例代码:
# 增加列
df_obj2['G'] = df_obj2['D'] + 4
print(df_obj2.head())
运行结果:
A B C D E F G
0 1.0 2017-01-02 1.0 3 Python ITCast 7
1 1.0 2017-01-02 1.0 3 Java ITCast 7
2 1.0 2017-01-02 1.0 3 C++ ITCast 7
3 1.0 2017-01-02 1.0 3 C ITCast 7
5. 删除列
del df_obj[col_idx]
示例代码:
# 删除列
del(df_obj2['G'] )
print(df_obj2.head())
运行结果:
A B C D E F
0 1.0 2017-01-02 1.0 3 Python ITCast
1 1.0 2017-01-02 1.0 3 Java ITCast
2 1.0 2017-01-02 1.0 3 C++ ITCast
3 1.0 2017-01-02 1.0 3 C ITCast
例子:obj2 使用的是上面的数据
ix 用法
方法:obj.ix[:,val] #选择单个列
obj.ix[val1,val2] #同时选取行和列
print(df_obj2.ix['A']) #通过 ix 获取指定索引对应的行信息,ix 表示索引字段
print(df_obj2.ix[:,'A'])#选取所有航的指定'A'列的数据
版权声明: 本文为 InfoQ 作者【五分钟学大数据】的原创文章。
原文链接:【http://xie.infoq.cn/article/15703b1dcd96bf2df098a4011】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论