Pandas库--数据结构
引入Pandas包
import pandas as pd
Pandas数据结构
python的pandas库中数据结构有:
-
Series:
一维数组,与Numpy中的一维array类似,主要是由数组元素和与之对应的索引构成。Series如今能保存不同种数据类型,字符串、boolean值、数字等都能保存在Series中。 -
Time- Series:
以时间为索引的Series。 -
DataFrame:
二维的表格型数据结构。可以将DataFrame理解为Series的容器。 -
Panel :
三维的数组,可以理解为DataFrame的容器。 -
Panel4D:
四维数据容器。 -
PanelND:
拥有factory集合,可以创建像Panel4D一样N维命名容器的模块。
其中在数据处理方面最主要的两个的数据结构是:Series和DataFrame
一维Series
Series是一个类似一维数组的,他能够保存任何类型的数据,最简单的就是由一个数组和与之对应默认的索引值(0~N)组成
创建对象
pd.Series(data=None,index=None,dtype=None,name=None,copy=False,fastpath=False)
其中:data是存放的数据;index是数据对应的索引值;dtype表示存放数据的类型(如int32、bool等);name为存入数据的名字;copy默认的值为false
(1)通过一维数组的方式创建
pd.Series([1,2,3,4,5])
运行的结果:
类似于一个对应索引值的表格
index | item |
---|---|
0 | 1 |
1 | 2 |
2 | 3 |
3 | 4 |
4 | 5 |
(2)通过字典的方式创建
>>> weather={20200803:'rain',20200804:'sun',20200805:'rain'}
>>> pd.Series(weather)
20200803 rain
20200804 sun
20200805 rain
dtype: object
练习:作出一个菜单如下图
pd.Series(["4 cups","1 cup","2 large","1 can"],index=["Flour","Milk","Eggs","Spam"],dtype="object",name="Dinner")
访问数据
除了使用数据进行构建Series对象外,还可以采用下面的方法来获取index与values值
>>> Dinner=pd.Series(["4 cups","1 cup","2 large","1 can"],index=["Flour","Milk","Eggs","Spam"],dtype="object",name="Dinner")
#通过下标访问values的值
>>> Dinner[3]
'1 can'
#通过属性访问index/values的值
>>> Dinner.index
Index(['Flour', 'Milk', 'Eggs', 'Spam'], dtype='object')
>>> Dinner.values
array(['4 cups', '1 cup', '2 large', '1 can'], dtype=object)
数据运算
当某个索引对应的数据进行运算以后,运算结果会替换原先的数据并且仍然对应着之前的索引
>>> yunsuan=pd.Series([1,2,3,4,5])
>>> yunsuan
0 1
1 2
2 3
3 4
4 5
dtype: int64
>>> yunsuan*yunsuan
0 1
1 4
2 9
3 16
4 25
dtype: int64
二维/表格DataFrame
DataFrame是一个类似于二维数组或表格的对象。DataFrame不仅有行索引也同样有列索引。数据是可以有很多列的。
创建对象
pd.DataFrame(data=None,index=None,columns=None,dtype=None,copy=False)
其中:data是存放的数据;index是数据对应的行索引值(默认是一个从0~N的索引);而columns为列索引;dtype表示存放数据的类型(如int32、bool等);copy默认的值为false
练习:创建DataFrame如下图
fruits=pd.DataFrame({"Apples":[30],"Bananas":[21]}) >>> fruits Apples Bananas 0 30 21
访问数据
>>> element=fruits['Apples']
# 查看返回结果的类型
>>> type(element)
<class 'pandas.core.series.Series'>
# 得到的结果是一列Series对象
>>> element
0 30
Name: Apples, dtype: int64
增加数据
>>> fruits['Orange']=[20]
>>> fruits
Apples Bananas Orange
0 30 21 20
删除数据
>>> del fruits['Orange']
>>> fruits
Apples Bananas
0 30 21