第一章 机器学习基础(2)全网最好的pandas教程

机器学习基础(2) pandas

1. pandas概述

​ 在上文中,我们已经详细的介绍了Numpy,而本节的内容,则是着重介绍Pandas的用法。因为在机器学习中,许多的数据我们并不是保存在txt中,而是保存在Excel中。相较于两者,Numpy更加适合处理通过的数值数组数据,而pandas是基于Numpy构建的,专门为了处理表格和混杂数据而设计的库。


2. pandas的基本操作

好了,废话不多说,我们直接上教程~

首先,为了引入pandas包,需要键入以下命令。

import pandas as pd

ps:本次教程演示的数据用例下载地址请注意:此文件需要和代码放在同一路径下


2.1 基本操作–读取文件

import pandas as pd
import numpy as np
'''
pd.read_csv("my_file.csv",sep=";",encoding="latin-1",nrows=100,shiprows=[2,5])
除了read_csv(),比较常用的一般还有 read_excel
'''
##准备读取数据
data = pd.read_csv("example.csv")
print(data)
'''
	Output:
	 Product Unique ID                                      Product Title  \
0            RING-1       18k White Gold Ring With Pink Sapphire (New)   
1         NX-TOTE-1                                                NaN   
2         NX-TOTE-1                        Adorable NX Dome Tote (New)   
3             TOP-1  Sexy One Piece High Cut Monokini Swimming Suit...   
4      HEADPHONES-1                                                NaN   
5          TEAPOT-1                                                NaN   
6             HAT-1                                                NaN   

   Starting Bid  Buy Now Price Variation Unique ID  Variation Size  \
0           1.0           10.0                 NaN             NaN   
1           1.0            NaN     NX-TOTE-1-BLACK             NaN   
2           1.0           10.0      NX-TOTE-1-PINK             NaN   
3           1.0           10.0       TOP-1-S-WHITE             NaN   
4           1.0            NaN                 NaN             NaN   
5           NaN            NaN                 NaN             NaN   
6           NaN            NaN                 NaN             NaN   

  Variation Color  Variation Quantity   Status       Campaign Name  \
0             NaN                 NaN      NaN     My 1st Campaign   
1           Black                10.0      NaN                 NaN   
2            Pink                10.0      NaN                 NaN   
3             NaN               100.0      NaN                 NaN   
4             NaN                 NaN  Enabled     My 1st Campaign   
5             NaN                 NaN      NaN                 NaN   
6             NaN                 NaN      NaN  1st Promo Campaign   

                                         Unnamed: 10  
0  <- Update the product's title, starting bid an...  
1                            <- Add a new variation.  
2  <- Add a new variation and update the product'...  
3  <- Update an existing variation's quantity and...  
4  <- Designate sale status (“Enabled” for auctio...  
5  <- Remove from a campaign by leaving Campaign ...  
6  <- Move from one campaign to another by changi...  

'''

2.2 基本操作–写数据

除了需要了解读取的操作之外,我们还需要知道如何将数据保存在csv文件中,pandas库给我们提供了一个很好的方法:to_csv()

##index=None表示数据会以原来的样子写入,如果没有这一列,写入的数据会多出来一列序号列(1,2,3....)
##准备数据 
data = {
    "ID ":[1,2,3,4],
     "Name ":["Xia0","Wang","Yin","Hong"],
     " Age":[12,15,13,15],
     " Address":["Earth","Moon","",""],
}
##将数组字典转化成DataFrame类型
data = pd.DataFrame(data)
data.to_csv("my_file.csv",index=None)

'''
特别注意:
	IF 字典value 的 type == list:
    	THEN :
    		data = pd.DataFrame(data)
    		data.read_csv("myfile.csv",index=None)
	IF 字典value 的 type == string 
		THEN :
			data = pd.DataFrame(data,index=[0])
        	data.read_csv("myfile.csv",)
     因为pandas的dataframe需要一个可迭代的对象
'''

2.3 基本操作–统计数据

##给出基本的统计数据
data = pd.read_csv("example.csv")
data.describe()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89wfO90n-1594783651862)(https://img.vim-cn.com/74/dd97653b1e32b9a2969b6fac33a13368f538ae.png)]

2.4 基本操作–查看数据

##准备数据
data = pd.DataFrame(pd.read_csv("my_file.csv"))

##查看前两行数据
print(data.head(2))

##打印出第1行
print(data.loc[1])

## 打印名为ID的列
print(data['ID'])

##打印第[1,3)的数据集
print(data.loc[range(1,3)])

2.5 基本操作–pandas函数

pandas有两种数据结构,分别是series和DataFrame

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CrSCP02B-1594783651871)(https://img.vim-cn.com/e7/c229e125b684379fe783e1e08cefc100d179e7.png)]

创建series

##创建series
import numpy as np
import pandas as pd

arr1 = np.arange(10)
s1 = pd.Series(arr1)
print(s1)
'''
OUTPUT:
index   value
    0    0
    1    1
    2    2
    3    3
    4    4
    5    5
    6    6
    7    7
    8    8
    9    9
'''

创建DataFrame

import pandas as pd
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
df= pd.DataFrame(data)
'''
OUTPUT:
    state  year  pop
0    Ohio  2000  1.5
1    Ohio  2001  1.7
2    Ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2002  2.9
5  Nevada  2003  3.2
'''

2.6 基本操作–pandas基本功能

函数功能
.append(idx)连接另一个Index对象,产生新的Index对象
.diff(idx)计算差集,产生新的Index对象
.intersection(idx)计算交集
.union(idx)计算并集
.delete(loc)删除loc位置处的元素
.insert(loc,e)在loc位置增加一个元素

2.7 基本操作–数据清洗

​ 在机器学习中,获取到的的特征肯定会有缺失的数据,如果放任不管,将会对我们最终训练的模型产生不可预估的错误,因此数据清洗显得多么的重要~

​ 在pandas中使用的是浮点值NAN(np.NAN)表示缺失的值。

函数简介
.info()查看数据的信息,包括每个字段的名称、非空数量、字段的数据类型。
.isnull()返回一个同样长度的值为布尔型的对象(Series或DataFrame),表示哪些值是缺失的,**.notnull()**为其否定形式。
.dropna()删除缺失数据.对于Series对象,dropna返回一个仅含非空数据和索引值的Series。对于DataFrame对象,dropna默认删除含有缺失值的行;如果想删除含有缺失值的列,需传入axis = 1作为参数;如果想删除全部为缺失值的行或者列,需传入how='all’作为参数;如果想留下一部分缺失数据,需传入thresh = n作为参数,表示每行至少n个非NA值。
.fillna(value,method,limit,inplace)填充缺失值。value为用于填充的值(比如0、'a’等)或者是字典(比如{‘列’:1,‘列’:8,……}为指定列的缺失数据填充值)

2.8 数据转化

.replace(old, new):用新的数据替换老的数据,如果希望一次性替换多个值,old和new可以是列表。默认会返回一个新的对象,传入inplace=True可以对现有对象进行就地修改。

.duplicated():判断各行是否是重复行(前面出现过的行),返回一个布尔型Series。


3. 参考博客

1.pandas最详细教程

2.Python pandas用法

3.pandas的to_csv用法


4. 写在最后

各位同学,请你们记住,在计算机领域中,最重要的事情是什么呢?实践别人的东西终究是别人的,只有实践才能够将别人的东西转化成自己的,相信你们一定能够行的,加油~


最后,如果有志同道合的朋友想一起讨论的,请加QQ群【662151913】萌新AI的入坑之旅


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值