一、什么是pandas?
Pandas是python的核心数据分析支持库,它提供了快速、灵活、明确的数据结构,旨在简单、灵活地处理关系型数据。
二、Pandas的数据结构
1、Series:
Series是一种类似于一维数组的数据结构,它由一组数据(可以是不同的数据类型)以及一组与之相关的数据标签index(即索引)组成,还可以指定Series的名称。
- Series是带有名称和索引的一维数组。
- 数组中的元素可以是任意数据类型的组合。
2、DataFrame:
DataFrame是一种表格型的数据结构。它的每一列可以是不同的值类型(例如布尔型、数值型、字符串等),此外它既有行索引index,又有列索引columns。我们可以将它看成是由Series组成的字典(将每一列看成是一个Series)。
三、Series:
1、使用列表创建:
pd.Series(
data=None, #数据列表
index=None, #索引列表
name=None, #Series名字
dtype=None,
copy=None,
fastpath=Flase)
示例:
tmp=pd.Series(data=[23,'lucky'],index=['age','name'],name='people')
print(tmp)
运行结果:
2、使用字典创建:
pd.Series(
{}
name=None,
dtype=None,
copy=False,
fastpath=False)
示例:
tmp_dict=pd.Series({'age':23,'name':'Mary'},name='people')
print(tmp_dict)
运行结果:
3、索引 :
- 按索引名索引:s['age'],返回具体值;
import pandas as pd tmp_dict=pd.Series({'age':23,'name':'Mary','gender':'M','place':'shanxi'},name='people') r=tmp_dict['age'] print(r)
- 按序号索引:s[0],返回具体值;
r=tmp_dict[0] print(r)
- 按序号切片索引:s[0,2],区间开闭情况取s[include,exclude],结果返回Series;
r=tmp_dict[0:2] print(r)
- 按索引名切片索引:s['age':'gender'],区间的开闭情况取s[include,include],结果返回Series;
r=tmp_dict['age':'gender'] print(r)
- 按数组索引:s[[0,2]],s[['age','gender']]
r=tmp_dict[[0,2]] print(r)
r=tmp_dict[['age','gender']] print(r)
- 按逻辑值查找
由Series构成逻辑表达式时(例如将一个Series与一个数值进行比较),广播机制会将Series中的每一个值代入逻辑表达式,因此最终会得到一个与原Series形状相同的且全部由布尔值构成的Series,每一个位置的布尔值对应该位置的比较结果。
如果继续用该逻辑表达式对Series进行查找,那么结果会返回一个由满足条件的值(即对应位置为True)构成的Series,但是值得注意的是,结果中会沿用原来Series的值的索引。
举例:
s=pd.Series([23,45,56,34,11,19])
r1=s>30 #返回由True和False构成的Series
r2=s[s>30] #返回满足条件的值构成的Series,注意会沿用之前的索引
print('r1\n',r1)
print('r2\n',r2)
运行结果:
如果不想沿用之前的索引,也可以通过reset_index()函数给索引赋新名字。这个方法的原理就是把原本的index作为新的一列与原来的Series结合变成了一个新的DataFrame。如果不想要index这一列,我们可以drop去掉即可,使用reset_index(drop=True)。
举例:
r3=r2.reset_index()
print(r3,'\n',type(r3))
举例:
r4=r2.reset_index(drop=True)
print(r4,'\n',type(r4))
4、Series基本属性:
- shape:Series的长度(元素的个数)
- index:Series的索引
- values:Series的值
5、Series的常用方法:
- head(n)/tail(n):默认n为5
- unique():返回不重复的数组
- nunique():返回去重后的值的个数
- dropna():返回一个删除缺失值的数组
- fillna(value):将缺失值设置为传入的参数,返回数组
- isin([values]):与values进行比较,如果相等则为True,否则为False。(即遍历Series中的值,与values中的值一一比较,如果有相等的就返回True,否则为False)
举例:
s=pd.Series([23,23,45,45,56,34,11,19])
print(s.isin([23,45]))
- sort_values(ascending=True):返回升序排序结果
- sort_values(ascending=False):返回降序排序结果
6、Series——字符串类型
s=pd.Series(['zhangsan','lisi','wangwu','zaoliu'])
可以通过 s.str.方法 来调用字符串的各种方法,例如replace(old,new)、startswith()等。
剩余知识点详见下期blog哟!