dataframe修改数据_数据处理进阶pandas入门(一)

前言

NumPy作为数据处理的利器,在对数据进行科学计算、存储处理大型矩阵等方面为我们带来了极大的方便,但对于更进一步的数据分析任务,文件操作等方面显得有些吃力。于是,作为NumPy的进阶库pandas应运而生,在实际应用中,一般NumPy和pandas都是一起出现的,二者再配合Matplotlib可以做很多基础的数据处理、分析和展示。

经过前几次的内容,我们已经掌握了NumPy的基本用法,接下来我们将开始进入到pandas的介绍。

pandas基本概念

pandas是基于NumPy构建的一种数据处理工具,被誉为Python中的Excel,主要是为了解决数据分析任务而创建的。pandas中含有大量的数据处理运算相关库以及一些标准的数据模型,提供了高效操作大型数据集必备的工具。利用pandas提供的函数和方法能使我们快速便捷高效地处理数据。

下面给出了pandas库的安装教程以及pandas中文参考文档。

pandas的安装教程:http://pandas.pydata.org/pandas-docs/stable/install.html

pandas中文文档:https://www.pypandas.cn

pandas基本数据结构

pandas主要包括四类数据结构:Series、Time-Series、DataFrame和Panel。

Series:类似于NumPy中的一维ndarray,能保存不同种数据类型,包括字符串、boolean值、数字等。除了可以使用NumPy中一维ndarray可用的函数或方法外,还可以通过索引标签的方式获取数据,具有索引的自动对齐功能。

Time-Series:以时间为索引的Series。之所以将它从Series中独立出来,是因为时间序列在数据处理与分析中是一个很重要的概念,之后讲到时再具体介绍。

DataFrame:二维的表格型数据结构。功能非常类似于R语言中的data.frame。从结构上来看,我们可以将DataFrame理解为Series的容器。

Panel:三维数据结构。从结构上来看,我们可以理解为DataFrame的容器。

初识Series和DataFrame

Series和DataFrame是pandas中我们最常用的两个数据结构,我们分别创建Series和DataFrame来看一下它们的基本结构。

我们首先创建一个一维ndarray,然后通过pandas的Series()函数,将这个一维ndarray传入,即可生成一个Series,基本用法如下。​

import numpy as npimport pandas as pdarr = np.arange(10)print(arr)print("---------------")eries = pd.Series(arr)print(series)

运行结果如下所示,可以看到,相比于NumPy的一维ndarray,Series多了一个默认从0开始的索引。

6ffece035b43887f4c01a18ed17021d6.png

基本Series

当然,Series的这个默认索引是可以修改的,我们只需要在使用Series()函数的时候多传入一个index列表参数即可。需要注意的是,index的长度必须要与Series的长度保持一致。​

import numpy as npimport pandas as pdarr = np.arange(10)print(arr)print("---------------")series = pd.Series(arr, index=list('abcdefghij'))print(series)

我们传入一个‘abcdefghij’的列表序列作为index,再次运行, Series的索引就改变了。运行结果如下所示。

e77c85de51e00cc9195001e6c6dff2db.png

改变Series索引

接下来我们看一下DataFrame。与Series类似,由于DataFrame相当于NumPy中二维ndarray的表格型数据结构,我们可以通过NumPy的二维ndarray来创建DataFrame,基本用法如下。​

import numpy as npimport pandas as pdarr = np.arange(12).reshape(3, 4)print(arr)print("---------------")data_frame = pd.DataFrame(arr)print(data_frame)

通过pandas的DataFrame()函数,传入二维ndarray。运行结果如下所示,可以看到,相比于NumPy的二维ndarray,DataFrame的排列格式更像是一个Excel表格,并且行列都具有默认从0开始的索引。

318aa84eebbf1de3f0ff3e01f28a75bf.png

基本DataFrame

同样的,我们可以修改DataFrame的默认行列索引,在使用DataFrame()函数的时候传入index列表参数修改行索引,传入columns列表参数修改列索引。其中,index和columns的长度分别必须与DataFrame的行长度和列长度保持一致。​

import numpy as npimport pandas as pdarr = np.arange(12).reshape(3, 4)print(arr)print("---------------")data_frame = pd.DataFrame(arr, index=list('abc'), columns=list('ABCD'))print(data_frame)

我们将index设置为‘abc’的列表序列,columns设置为‘ABCD’的列表序列,再次运行,默认的行列索引都成功改变了。

f28a36302d40ede756af812b7c1d9d2a.png

修改DataFrame的行列索引

Series和DataFrame相比于NumPy中的一维ndarray和二维ndarray,从结构上来看最大的区别就是多了索引。此外,可以看到,NumPy中的ndarray就像是矩阵,而pandas中的Series和DataFrame更像是表格,这样的形状区别也注定了二者的应用场景的不同,在后续的内容中,我们会渐渐体会到两者的区别。

总结

以上介绍了pandas的基本概念和基本数据结构,简单熟悉了pandas中两个重要的数据结构Series和DataFrame以及它们跟NumPy中的ndarray的区别。下次内容我们开始详细介绍pandas中的Series、DataFrame和其他相关知识。感谢大家的关注,欢迎批评指正,一起交流~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值