![9dbd5bec95740cc0cb87588e4d01ee69.png](https://i-blog.csdnimg.cn/blog_migrate/be5dd89426024a621ff9d77bdd5bfd62.jpeg)
回顾pandas的一些内容
pandas是一个用于数据分析的库,必备库,官网:pandas documentation
pandas最核心的两个数据结构:Series、DataFrame
先看看pandas安装是否成功
import pandas as pd
pd.__version__
![7838e8e448baafdbb94e1cd6207b83d2.png](https://i-blog.csdnimg.cn/blog_migrate/334e8ca99b321160a2a2a971d241bba6.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://i-blog.csdnimg.cn/blog_migrate/b023e4ad212a14a3c6205c6c7a815461.png)
0,1,2就是默认初始化的索引,3,5,7是我们传入的data
我们当然也可以传入index
s = pd.Series([3,5,7], index=['one', 'two', 'three'])
![1285e0ca0c220c3373bec99b5faebbd8.png](https://i-blog.csdnimg.cn/blog_migrate/4071964cb7cbd1b208a5324c0b88a116.png)
我们可以查看Series的index和value
s.index
s.values
![1eb7e039dea7e7e3b39f2d74e87af90b.png](https://i-blog.csdnimg.cn/blog_migrate/d5ccd48df8aedfa88346a54ebf6abf37.png)
这里,我们可以发现,index和value都是有dtype的,就都是有类型的
筛选
这里和numpy很像,可以使用索引来选择指定元素
这里可以使用index做筛选,也可以使用索引,这个index理解为标签
s['one']
s['two']
s[1]
s[1:2]
![4947842ca7976f7a2ca3b08ede58afdb.png](https://i-blog.csdnimg.cn/blog_migrate/9e022e95e99610c56bbb89d9cc98cbf5.png)
在numpy中提到的一些筛选方法,Series中同样适用
比如,布尔数组筛选
s[s>5]
![bce2495a0ef382c6857142bea093f406.png](https://i-blog.csdnimg.cn/blog_migrate/5edbdd3c12d831b95e67852a34dd1415.png)
基本的四则运算
s+1
s*2
![da4db410e3643391ae4226822af8cf6a.png](https://i-blog.csdnimg.cn/blog_migrate/efc0b4d81861fe7de783bfba0986fcbf.png)
常用函数
获取唯一值:
Series.unique
()
返回series中的唯一值
s = pd.Series([1,3,3,4,5,5,7])
s.unique()
![57e65d7c2596d0dc5ab0c21cb0c933de.png](https://i-blog.csdnimg.cn/blog_migrate/985957c04dd245b4bdad8771fb507257.png)
还有一个类似的函数
Series.value_counts
(
normalize=False,
sort=True,
ascending=False,
bins=None,
dropna=True)
返回的也是唯一值,但是多了唯一值出现的次数
s.value_counts()
![6364502513107787ccec073eaf138584.png](https://i-blog.csdnimg.cn/blog_migrate/5bd4a339bfa7daf06849d7416b207a18.png)
Series.isin
(
values)
判断所属关系,是否包含指定的元素
s = pd.Series(['lama', 'cow', 'lama', 'beetle', 'lama', 'hippo'], name='animal')
s.isin(['cow', 'lama'])
![5025813c8f7245c84e1042c22b311072.png](https://i-blog.csdnimg.cn/blog_migrate/3e7db8ed9147d38dca36f3a3bfbb4d8e.png)
这里返回的是一个Boolean数组,正好可以用来筛选数据
s[s.isin(['cow', 'lama'])]
![3f461f7b262bbf661c41980e027b2dff.png](https://i-blog.csdnimg.cn/blog_migrate/be02bc02ef854cf18670246373771606.png)
Series.isna
()Series.isnull
()
用来判断是否包含NaN(Not a Number)
s = pd.Series(['aaa', 'bbb', np.NaN])
s.isna()
![b15bfcf5e5b89fb5871bba499d21f1c8.png](https://i-blog.csdnimg.cn/blog_migrate/7dee1694bca306a0c2c7c1da62aa39fe.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://i-blog.csdnimg.cn/blog_migrate/381eca69105a3975d0b10a0bb6ed9d09.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://i-blog.csdnimg.cn/blog_migrate/b25ba207e402734b4ad8d68037431d74.png)
基础信息
df.index
df.columns
df.values
![62c52b668a7d965a01b7517e4d253d4f.png](https://i-blog.csdnimg.cn/blog_migrate/6d21a3e6b04c0bf372d96880e928b816.png)
筛选数据
可以使用columns直接进行筛选
df['a']
df[['a','b']]
![4707da9115e09cef68122784b014cfca.png](https://i-blog.csdnimg.cn/blog_migrate/851b67dadfc9230e00713a92e7bb2a08.png)