Pandas数据处理基础


前言

此文主要记录pandas的基础知识,主要由数据类型、数据读取、数据填充等组成


一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、基础内容

1、数据类型

类型解释
Series一维数组
DataFrame二维数组
Panel三维数组
Pannel 4D四维数组
Panel ND多维数组

建立Series

1.基本结构

pandas.Series(data=None,index=None)其中data是数据,index为索引。

import pandas as pd
s = pd.Series({'a':10,'b':20,'c':30})
#利用type s来确定s的类型
print(s)
type s

其中a,b,c为索引

2.生成一个一维随机数组
pandas.Series(pandas.random.randn(5))

建立DataFrame

1.基本结构

pandas.DataFrame(data=None,index=None,columns=None),其中data是二维数组的数据,index为行的索引,columns为列标

2.DataFrame的数据构建类型

1 一维数组、列表、字典或者Series字典
2 二维或者结构化的numpy.ndarray
3 一个Series或者另一个DataFrame

3.由Series构建DataFrame
df = pandas.DataFrame({'one':pandas.Series([1,2,3]),
						'two':pandas.Series([4,5,6])})

其中one、two为列标签

4.由列表构建DataFrame
df = pandas.DataFrame([{'one':1,'two':4},
					   {'one':2,'two':5},
					   {'one':3,'two':6}])
					   
5.基于二维数组构建DataFrame
pandas.DataFrame(numpy.random.randint(5,size=(2,4)))

ranint(5,size=(2,4)),其中5表示随机整数的范围在0-5,size中的数字表示行数以及列数,确定二维数组的大小。

2、数据读取

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
    #数据来源可以是网络的URL,也可以是本地文件(使用相对地址)
print(data.head())

数据的显示
#显示前五条数据
data.head()
#指定显示后七条数据
data.tail(7)
#输出每一列数据的数据个数,最大值,最小值等
data.describe()
#将DataFrame转换为numpy数组
data.values
#查看索引
data.index()
#查看列标
data.columns()
#查看形状
data.shape

3、数据选择

1.基于索引数字选择

pandas.iloc()的接受类型:
1 整数
2 整数组成的列表或数组
3 布尔数值
4 可返回索引值的函数或者参数

#切片获取前前三数据
data.iloc[:3]
#选择特定的一行
data.iloc[5]
#选择135行数据
data.iloc[[1,3,5]]
#选择2-4行
data.iloc[:,1:4]

2.基于标签名选择

pandas.loc[]接受的数据类型:
1 单个标签,例如标签2或者‘a’
2 列表或者数组包含的标签,[‘a’,‘b’,‘c’]
3 切片对象,首尾都包含在内,’a‘:’e’,选中从a列到e列
4 布尔数组
5 可返回标签的函数或者参数

#df是构建的DataFrame
df = data
#选择前三行
df.loc[0:3]
#选择135行数据,对应的标号为024
df.loc[[0,2,4]]
#选择A到E列
df.loc[:,'A':'E']
#选择13行的E后面的所有列
df.loc[[0:\,2],'E':]

4、数据删减

1.基本内容

.drop开头的方法都与数据删减有关
DataFrame.drop可以直接去掉数据中指定的行和列,一般使用时,我们按照labels选择列标签,axis选择行标签

2.基本函数

data.drop_duplicates()
#用于数据的去重,利用参数axis来选择去重行还是列
data.dropna()
#删除数据中的缺失值

5、数据填充

一般不乱填数据,更多的是对数据的缺失值进行填充。

1.检测缺失值

NaN——数据缺失
NaT——时间戳缺失

data.isna()
#如果是缺失值,返回布尔值true,反之false
data.notna()
#如果不是缺失值,返回布尔值true,反之false

2.缺失值处理

data.dropna()
#剔除缺失值
data.fillna(0)
#将缺失值NaN替换为0
#除了直接替换填充,我们还可以通过参数,
#将缺失值前面或者或者后面的值进行填充给相应的缺失值
data.fillna(method='pad')
#前面值填充
data.fillna(method='bfill')
#后面值填充
data.iloc[[3,5],[1,3,5]]=np.nan
#将246列的35行设置为缺失值
data.fillna(method='pad')
#利用前面值进行正向填充
data.fillna(method='pad',limit=1)
#利用后面值进行有限定次数的填充,限定的次数由limit设置
data.fillna(data.mean()['C':'E')
#对C到E列的缺失值使用平均值填充
#利用平均值的方法来填充特定的行列

3.插值填充

interpolate()默认参数为线性填充,可以选择相关函数来决定是线性还是给非线性。
interpolate()支持的插值算法:method=
1 如果数据增长率越来越大,使用method=‘quadratic’二次插值
2 数据呈现出累计分布,method=‘pchip’
3 如需填补缺失值,以平滑绘图为目的,method=‘akima’,但是参数akima需要有Scipy库的支持。

三、使用步骤

1.引入库

代码如下(示例):

import pandas as pd

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据,也可以使用相对地址的本地文件。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值