提示:以下是本篇文章正文内容,下面案例可供参考
一、Pandas是什么?
pandas是Python在数据处理方面功能最为强大的扩展模块了。在在Python中,pandas包含了高级的数据结构Series和DataFrame,使得在Python中处理数据变得非常方便、快速和简单。
二、Pandas使用方法
1.引入库
import numpy as np
import pandas as pd
pandas主要的两个数据结构是Series和DataFrame,我们先导入它们以及相关模块:
import numpy as np
from pandas import Series, DataFrame
2.Series对象
2.1 创建对象
2.1.1 使用数组创建对象
Series可以简单地被认为是一维的数组。Series和一维数组最主要的区别在于Series类型具有索引(index),可以和另一个编程中常见的数据结构哈希(Hash)联系起来。
a = np.arange(10)
s = Series(a)
可以在创建Series时添加index,并可使用Series.index查看具体的index。需要注意的一点是。当从数组创建Series时,若指定index,那么index长度要和data的长度一样,否则会报错:
s = Series(a[:5], index=['a', 'b', 'c', 'd', 'e'])
2.1.2 使用字典创建对象
Series还可以从字典(dict)创建:
d = {'a': 0., 'b': 1, 'c': 2}
s = Series(d)
使用字典创建Series时指定index的情形(index长度不必和字典相同)
s=Series(d,index=['a','b','c','d','e'])
a 0.0
b 1.0
c 2.0
d NaN
e NaN
dtype: float64
一是字典创建的Series,数据将按index的顺序重新排列;二是index长度可以和字典长度不一致。如果多了的话,pandas将自动为多余的index分配NaN;少了的话,自动截取字典
2.2 Series数据的访问
访问Series数据可以和数组一样使用下标,也可以像字典一样使用索引,还可以使用一些条件过滤。
s[0]
s[:2]
s[[1,0]]
s[s > 0.5]
3.DataFrame对象
DataFrame是将数个Series按列合并而成的二维数据结构,每一列单独取出来是一个Series
3.1 创建DataFrame对象
d = {'one': Series([1., 2., 3.], index=['a', 'b', 'c']), 'two': Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = DataFrame(d)
结果为:
one two
a 1.0 1.0
b 2.0 2.0
c 3.0 3.0
d NaN 4.0
可以使用dataframe.index和dataframe.columns来查看DataFrame的行和列,dataframe.values则以数组的形式返回DataFrame的元素:
df.index
df.columns
df.values
DataFrame也可以从值是数组的字典创建,但是各个数组的长度需要相同
d = {'one': [1., 2., 3., 4.], 'two': [4., 3., 2., 1.]}
df = DataFrame(d, index=['a', 'b', 'c', 'd'])
one two
a 1.0 4.0
b 2.0 3.0
c 3.0 2.0
d 4.0 1.0
值非数组时,没有这一限制,并且缺失值补成NaN
d= [{'a': 1.6, 'b': 2}, {'a': 3, 'b': 6, 'c': 9}]
df = DataFrame(d)
a b c
0 1.6 2 NaN
1 3.0 6 9.0
在实际处理数据时,有时需要创建一个空的DataFrame
df = DataFrame()
3.2 使用concat函数基于Serie或者DataFrame创建一个DataFrame
a = Series(range(5))
b = Series(np.linspace(4, 20, 5))
df = pd.concat([a, b], axis=1)
0 1
0 0 4.0
1 1 8.0
2 2 12.0
3 3 16.0
4 4 20.0
3.3 DataFrame数据的访问
df[1]
0 4.0
1 8.0
2 12.0
3 16.0
4 20.0
Name: 1, dtype: float64
选取行
df.iloc[1]
0 1.0
1 8.0
Name: 1, dtype: float64
选取行还可以使用切片的方式或者是布尔类型的向量:
df[1:3]
0 1
1 1 8.0
2 2 12.0
总结
本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
|