python的pandas库快速入门(Series、DataFrame)

Pandas是什么?

Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

利器之一:Series
它是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。

利器之一:DataFrame
DataFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

一、Series类型可以由如下类型创建:

Series类型由一组数据及与之相关的数据索引组成
在这里插入图片描述

Series类型可以由如下类型创建:
• Python列表,index与列表元素个数一致
• 标量值,index表达Series类型的尺寸
• Python字典,键值对中的“键”是索引,index从字典中进行选择操作
• ndarray,索引和数据都可以通过ndarray类型创建
• 其他函数,range()函数等

1、从标量值创建
In [2]:	import pandas as pd
		a = pd.Series(25,index=['a','b','c'])#不能省略index
		a
Out[2]:
		a    25
		b    25
		c    25
		dtype: int64
2、从字典类型创建
In [3]:	import pandas as pd
		s = pd.Series({'a':5,'b':6,'c':7})
		s
Out[3]:
		a    5
		b    6
		c    7
		dtype: int64
In [4]:	import pandas as pd
		s = pd.Series({'a':5,'b':6,'c':7},index=['c','a','b','d'])#index从字典中进行选择操作
		s
Out[4]:
		c    7.0
		a    5.0
		b    6.0
		d    NaN
		dtype: float64
3、从ndarray类型创建
In [5]:	import pandas as pd
		import numpy as np
		n = pd.Series(np.arange(5))
		n
Out[5]:
		0    0
		1    1
		2    2
		3    3
		4    4
		dtype: int32

二、Series类型的基本操作

1、Series类型包括index和values两部分
In [6]:import pandas as pd
		s = pd.Series({'a':5,'b':6,'c':7,'d':8},index=['c','a','b','d'])	#改变索引
		s
Out[6]:
		c    7
		a    5
		b    6
		d    8
		dtype: int64
In [7]:s.index			#.index 获得索引
Out[7]:Index(['c', 'a', 'b', 'd'], dtype='object')
In [8]:s.values		#.values 获得数据
Out[8]:array([7, 5, 6, 8], dtype=int64)
2、Series类型的操作类似ndarray类型:

• 索引方法相同,采用 [ ]
• NumPy中运算和操作可用于Series类型
• 可以通过自定义索引的列表进行切片
• 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片

In [9]:import pandas as pd
		s = pd.Series([1,2,3,4],['a','b','c','d'])
		s
Out[9]:
		a    1
		b    2
		c    3
		d    4
		dtype: int64
In [10]:s[3]	#输出第4个索引的值
Out[10]:4
In [11]:s[:3]	#输出第1~3个索引的值
Out[11]:
		a    1
		b    2
		c    3
		dtype: int64
In [12]:s[s>s.median()]#输出比中位数大的
Out[12]:
		c    3
		d    4
		dtype: int64
3、Series类型的操作类似Python字典类型:

• 通过自定义索引访问
• 保留字in操作
• 使用.get()方法

In [13]:import pandas as pd
		b = pd.Series([5,6,7,8],['a','b','c','d'])
		b
Out[13]:
		a    5
		b    6
		c    7
		d    8
		dtype: int64
In [14]:b['b']	#输出索引为b的值
Out[14]:8
In [15]:'c'in b		#判断索引c是否在b中
Out[15]:True
In [16]:2 in b		#判断数值2是否在b中
Out[16]:False
In [17]:b.get('b')		#获取索引为b的值
Out[17]:6
4、Series 类型的name属性

Series对象和索引都可以有一个名字,存储在属性.name中

In [18]:import pandas as pd
		b = pd.Series([5,6,7,8],['a','b','c','d'])
		b
Out[18]:
		a    5
		b    6
		c    7
		d    8
		dtype: int64
In [19]:b.name
In [20]:b.name = 'series对象'
In [21]:b.index.name = '索引列'
In [23]:b
Out[23]:
		索引列
		a    5
		b    6
		c    7
		d    8
		Name: series对象, dtype: int64
5、Series类型的修改

Series对象可以随时修改并即刻生效

In [24]:import pandas as pd
		b = pd.Series([5,6,7,8],['a','b','c','d'])
		b
Out[24]:
		a    5
		b    6
		c    7
		d    8
		dtype: int64
In [25]:b['a','b']=1	#把索引为a,b的值该为1
In [26]:b
Out[26]:
		a    1
		b    1
		c    7
		d    8
		dtype: int64

三、DataFrame类型可以由如下类型创建:

• 二维ndarray对象
• 由一维ndarray、列表、字典、元组或Series构成的字典
• Series类型
• 其他的DataFrame类型

1、从二维ndarray对象创建
In [27]:import pandas as pd
		import numpy as np
		d = pd.DataFrame(np.arange(10).reshape(2,5))
		d
Out[27]:
			0	1	2	3	4		#0 1 2 3 4是自动列索引 01是自动行索引	
		0	0	1	2	3	4    
		1   5	6	7	8	9
2、从一维ndarray对象字典创建
In [28]:import pandas as pd
		dt = {'one': pd.Series([1,2,3],index=['a','b','c']),
		     'two': pd.Series([9,8,7,6],index=['a','b','c','d'])}
		d = pd.DataFrame(dt)
		d
Out[28]:	
		one		two
	a	1.0		9
	b	2.0		8
	c	3.0		7
	d	NaN		6
In [29]:pd.DataFrame(dt,index=['b','c','d'],columns=['two','three'])
Out[29]:		
		   two three	#数据根据行列索引自动补齐
		b	8	NaN
		c	7	NaN
		d	6	NaN

3、从列表类型的字典创建

In [30]import pandas as pd
		dt = {'one': [1,2,3,4], 'two':[5,6,7,8]}
		d = pd.DataFrame(dt,index =['a','b','c','d'])
		d
Out[30]:
		   one two
		a	1	5
		b	2	6
		c	3	7
		d	4	8
发布了33 篇原创文章 · 获赞 13 · 访问量 2763

猜你喜欢

转载自blog.csdn.net/weixin_44947339/article/details/104191806