python数据分析之pandas(2)
前言
上次写到了pandas的数据读取功能,开启了我们的数据分析之路,今天学习一些pandas的数据结构,Dataframe,Series等。
开始
Series
Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。通过一些例子展示一下他的用法。
s1 = pd.Series([1,'a',5.2,7]) #创建一个变量并且进行赋值
0 1
1 a
2 5.2
3 7
# 这些就是输出的结果,左边是索引的序列,从0开始,右边是对应的值。类似于一维数组,a[0],a[1]...
Series同样可以使用一些基础的方法对对象进行操作等。
s1.index # 获取索引
s1.values # 获取数据
输出s1中包含的值
上面输出的索引是默认的索引名,我们也可以自己通过series进行索引名的设置,
s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c']) #index中的值便是设置的索引名
d 1
b a
a 5.2
c 7
#当我们输出后,便是我们自己设置的索引名啦。
Series还可以很方便的进行数据的查询,其方法类似于python中字典的dict。通过输入自己想查询的索引,对相应的值进行查询。
s2['a'] #输出5.2
s2[['b','a']]
# 输出
b a
a 5.2
这种发放类似于一维数组能够很方便的查询要指定位置的值。
Dataframe
DataFrame是一个表格型的数据结构(可以类似于二维数组)
- 每列可以是不同的值类型(数值、字符串、布尔值等)
- 既有行索引index,也有列索引columns
- 可以被看做由Series组成的字典
Dataframe的创建也和python自己的字典创建很相似,先创建索引名,同时给每个索引进行赋值,最终成功创建。
data={
'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]
}
# data就类似于一个字典,然后Datafarme把它进行转换一下。
df = pd.DataFrame(data)
# 输出的df的结果就是这样,每列有对应的名字。
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.9
Dataframe既然是一张表格,就有着行(index)和列(columns),可以分别使用这两个函数进行对行和列的查看。
df.columns #使用此方法就会输出对应的列名( state year pop)
df.index # 输出有多少行
从DataFrame中查询
如果只查询一行、一列,返回的是pd.Series;如果查询多行、多列,返回的是pd.DataFrame。
df['year'] # 查询的是一列的内容,输出的格式为Series类型,即类似一维数组类型
0 2000
1 2001
2 2002
3 2001
4 2002
df[['year', 'pop']] #查询的是两列的内容,输出的是DataFrame类型,即表格类型
year pop
0 2000 1.5
1 2001 1.7
2 2002 3.6
3 2001 2.4
4 2002 2.9
上面是查询列的结果,查询行也是一样的情况,一行输出Series的结果,一行以上输出DataFrame的结果。
结尾
请大家多多关照,共同学习、进步。 ^ _ ^