⾮常全⾯的Pandas⼊门教程
pandas是基于NumPy的⼀种数据分析⼯具,在机器学习任务中,我们⾸先需要对数据进⾏清洗和编辑等⼯作,pandas库⼤⼤简化了我们的⼯作量,熟练并掌握pandas常规⽤法是正确构建机器学习模型的第⼀步。
⽬录
1. 如何安装pandas
2. 如何导⼊pandas库和查询相应的版本信息
3. pandas数据类型
4. series教程
5. dataframe教程
6. ⼩结
1. 如何安装Pandas
最常⽤的⽅法是通过Anaconda安装,在终端或命令符输⼊如下命令安装:
conda install pandas
若未安装Anaconda,使⽤Python⾃带的包管理⼯具pip来安装:
pip install pandas
2. 如何导⼊pandas库和查询相应的版本信息
import numpy as np # pandas和numpy常常结合在⼀起使⽤,导⼊numpy库
import pandas as pd # 导⼊pandas库
print(pd.__version__) # 打印pandas版本信息
#> 0.23.4
3. pandas数据类型
pandas包含两种数据类型:series和dataframe。
series是⼀种⼀维数据结构,每⼀个元素都带有⼀个索引,与⼀维数组的含义相似,其中索引可以为数字或字符串。series结构名称:
|索引列|数据列
dataframe是⼀种⼆维数据结构,数据以表格形式(与excel类似)存储,有对应的⾏和列。dataframe结构名称:
4. series教程
1. 如何从列表,数组,字典构建series
mylist = list('abcedfghijklmnopqrstuvwxyz') # 列表
myarr = np.arange(26) # 数组
mydict = dict(zip(mylist, myarr)) # 字典
# 构建⽅法
ser1 = pd.Series(mylist)
ser2 = pd.Series(myarr)
ser3 = pd.Series(mydict)
print(ser3.head()) # 打印前5个数据
#> a 0
b 1
c 2
d 4
e 3
dtype:int64
2. 如何使series的索引列转化为dataframe的列
mylist = list('abcedfghijklmnopqrstuvwxyz')
myarr = np.arange(26)
mydict = dict(zip(mylist, myarr))
ser = pd.Series(mydict)
# series转换为dataframe
df = _frame()
# 索引列转换为dataframe的列
print(df.head())
#> index 0
0 a 0
1 b 1
2 c 2
3 e 3
4 d 4
3. 如何结合多个series组成dataframe
# 构建series1
ser1 = pd.Series(list('abcedfghijklmnopqrstuvwxyz'))
# 构建series2
ser2 = pd.Series(np.arange(26))
# ⽅法1,axis=1表⽰列拼接,0表⽰⾏拼接
df = pd.concat([ser1, ser2], axis=1)
# 与⽅法1相⽐,⽅法2设置了列名
df = pd.DataFrame({'col1': ser1, 'col2': ser2})
print(df.head())
#> col1 col2
0 a 0
1 b 1
2 c 2
3 e 3
4 d 4
4. 如何命名列索引的名称
ser = pd.Series(list('abcedfghijklmnopqrstuvwxyz'))
\# 命名索引列名称
ser.name = 'alphabets'
\# 显⽰前5⾏数据
ser.head()
#> 0 a
1 b
2 c
3 e
4 d
Name: alphabets, dtype: object
5. 如何获得series对象A中不包含series对象B的元素ser1 = pd.Series([1, 2, 3, 4, 5])
numpy教程 pdfser2 = pd.Series([4, 5, 6, 7, 8])
\# 返回ser1不包含ser2的布尔型series
ser3=~ser1.isin(ser2)
\# 获取ser不包含ser2的元素
ser1[ser3]
#> 0 1
1 2
2 3
dtype: int64
6. 如何获得seriesA和seriesB不相同的项
ser1 = pd.Series([1, 2, 3, 4, 5])
ser2 = pd.Series([4, 5, 6, 7, 8])
\# 求ser1和ser2的并集
ser_u = pd.Series(np.union1d(ser1, ser2))
# 求ser1和ser2的交集
ser_i = pd.Series(np.intersect1d(ser1, ser2))
\# ser_i在ser_u的补集就是ser1和ser2不相同的项
ser_u[~ser_u.isin(ser_i)]
#> 0 1
1 2
2 3
5 6
6 7
7 8
dtype: int64
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论