![9dbd5bec95740cc0cb87588e4d01ee69.png](https://img-blog.csdnimg.cn/img_convert/9dbd5bec95740cc0cb87588e4d01ee69.png)
回顾pandas的一些内容
pandas是一个用于数据分析的库,必备库,官网:pandas documentation
pandas最核心的两个数据结构:Series、DataFrame
先看看pandas安装是否成功
import pandas as pd
pd.__version__
![7838e8e448baafdbb94e1cd6207b83d2.png](https://img-blog.csdnimg.cn/img_convert/7838e8e448baafdbb94e1cd6207b83d2.png)
Series
用来表示一维数据结构,和数组类似,由index和value组成
class
pandas.Series
(
data=None,
index=None,
dtype=None,
name=None,
copy=False,
fastpath=False)
s = pd.Series([3,5,7])
创建一个Series对象
![1a4b3ae8d2cdf9e4c00f89bbe364cf90.png](https://img-blog.csdnimg.cn/img_convert/1a4b3ae8d2cdf9e4c00f89bbe364cf90.png)
0,1,2就是默认初始化的索引,3,5,7是我们传入的data
我们当然也可以传入index
s = pd.Series([3,5,7], index=['one', 'two', 'three'])
![1285e0ca0c220c3373bec99b5faebbd8.png](https://img-blog.csdnimg.cn/img_convert/1285e0ca0c220c3373bec99b5faebbd8.png)
我们可以查看Series的index和value
s.index
s.values
![1eb7e039dea7e7e3b39f2d74e87af90b.png](https://img-blog.csdnimg.cn/img_convert/1eb7e039dea7e7e3b39f2d74e87af90b.png)
这里,我们可以发现,index和value都是有dtype的,就都是有类型的
筛选
这里和numpy很像,可以使用索引来选择指定元素
这里可以使用index做筛选,也可以使用索引,这个index理解为标签
s['one']
s['two']
s[1]
s[1:2]
![4947842ca7976f7a2ca3b08ede58afdb.png](https://img-blog.csdnimg.cn/img_convert/4947842ca7976f7a2ca3b08ede58afdb.png)
在numpy中提到的一些筛选方法,Series中同样适用
比如,布尔数组筛选
s[s>5]
![bce2495a0ef382c6857142bea093f406.png](https://img-blog.csdnimg.cn/img_convert/bce2495a0ef382c6857142bea093f406.png)
基本的四则运算
s+1
s*2
![da4db410e3643391ae4226822af8cf6a.png](https://img-blog.csdnimg.cn/img_convert/da4db410e3643391ae4226822af8cf6a.png)
常用函数
获取唯一值:
Series.unique
()
返回series中的唯一值
s = pd.Series([1,3,3,4,5,5,7])
s.unique()
![57e65d7c2596d0dc5ab0c21cb0c933de.png](https://img-blog.csdnimg.cn/img_convert/57e65d7c2596d0dc5ab0c21cb0c933de.png)
还有一个类似的函数
Series.value_counts
(
normalize=False,
sort=True,
ascending=False,
bins=None,
dropna=True)
返回的也是唯一值,但是多了唯一值出现的次数
s.value_counts()
![6364502513107787ccec073eaf138584.png](https://img-blog.csdnimg.cn/img_convert/6364502513107787ccec073eaf138584.png)
Series.isin
(
values)
判断所属关系,是否包含指定的元素
s = pd.Series(['lama', 'cow', 'lama', 'beetle', 'lama', 'hippo'], name='animal')
s.isin(['cow', 'lama'])
![5025813c8f7245c84e1042c22b311072.png](https://img-blog.csdnimg.cn/img_convert/5025813c8f7245c84e1042c22b311072.png)
这里返回的是一个Boolean数组,正好可以用来筛选数据
s[s.isin(['cow', 'lama'])]
![3f461f7b262bbf661c41980e027b2dff.png](https://img-blog.csdnimg.cn/img_convert/3f461f7b262bbf661c41980e027b2dff.png)
Series.isna
()Series.isnull
()
用来判断是否包含NaN(Not a Number)
s = pd.Series(['aaa', 'bbb', np.NaN])
s.isna()
![b15bfcf5e5b89fb5871bba499d21f1c8.png](https://img-blog.csdnimg.cn/img_convert/b15bfcf5e5b89fb5871bba499d21f1c8.png)
相对应的还有
Series.notna
()Series.notnull
()
上述4个函数返回的也是Boolean数组,都可以用来筛选
DataFrame
DataFrame就是将Series拓展到多维,和日常使用的Excel非常像
DataFrame除了有index,还有column,就像行索引和列索引
class
pandas.DataFrame
(
data=None,
index=None,
columns=None,
dtype=None,
copy=False)
df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
df
![2b820e26bc903b98c8e5b2510ae97532.png](https://img-blog.csdnimg.cn/img_convert/2b820e26bc903b98c8e5b2510ae97532.png)
这里,会将key自动识别为column,自动生成index
我们也可以直接传入data,指定index和column
df = pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'], index=['one','two'])
![ade5c996940cb93151281ceca2b998b6.png](https://img-blog.csdnimg.cn/img_convert/ade5c996940cb93151281ceca2b998b6.png)
基础信息
df.index
df.columns
df.values
![62c52b668a7d965a01b7517e4d253d4f.png](https://img-blog.csdnimg.cn/img_convert/62c52b668a7d965a01b7517e4d253d4f.png)
筛选数据
可以使用columns直接进行筛选
df['a']
df[['a','b']]
![4707da9115e09cef68122784b014cfca.png](https://img-blog.csdnimg.cn/img_convert/4707da9115e09cef68122784b014cfca.png)