python学习——pandas库的使用之series及DataFrame创建、查看、切片、运算

这篇具有很好参考价值的文章主要介绍了python学习——pandas库的使用之series及DataFrame创建、查看、切片、运算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pandas

  • Pandas是基于NumPy的数据分析模块
  • Pandas纳入了大量库和一些标准的数据模型,提供了高效操作大型数据集所需的工具
  • Pandas提供了大量能使我们快速便捷处理数据的函数和方法
  • Pandas的数据结构
    • Series:带标签的一维数组,与Numpy中的一维array类似。与列表也很相近。
      区别是:列表中的元素可以是不同的数据类型,而array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
    • Time-Series:以时间为索引的Series,特殊的一类Series
    • DataFrame:带标签的二维的表格型数据结构,可以将DataFrame理
      解为Series的容器
    • Panel:带标签的三维的数组,可以理解为DataFrame的容器

1 Series(序列)

  1. Series(序列)是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成
  2. Series的字符串表现形式为:索引在左边,值在右边。如果没有为数据指定索引,会自动创建一个0到N-1(N为数据的长度)的整数型索引

1.1 基本概念

dataframe切片,python基础知识,python,pandas,学习

1.1.1 索引 ser[‘a’]、ser.a、ser[0]、ser.get(‘a’)
from pandas import Series,DataFrame
s=Series([1,2,3,4],index=['a','b','c','d']) #指定索引,显式索引
#索引,获取单个值
s['b']
s.b
s.get('b')
s[1]

dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习

s=Series([3,4,5,6],index=['a','a','b','b']) #索引可以重复,但是尽量不要这样做
s

dataframe切片,python基础知识,python,pandas,学习

1.1.2 切片

切片不会改变序列数据类型

1.1.2.1 基于标签切片的时候,切片区间全闭

dataframe切片,python基础知识,python,pandas,学习

1.1.2.2 基于位置的切片语法 切片区间左闭右开

dataframe切片,python基础知识,python,pandas,学习

1.1.3 选择和过滤
1.1.3.1 直接通过Series进行比较

dataframe切片,python基础知识,python,pandas,学习

1.1.3.2 通过Series.index 或者 Series.values进行比较

dataframe切片,python基础知识,python,pandas,学习

1.2 序列创建

数据(序列、数组、字典、标量)、索引、名字

1.2.1 列表,元组(一维)

dataframe切片,python基础知识,python,pandas,学习

1.2.2 标量
s1=Series(5,index=['a','b','c','d']) #标量,自动重复以匹配索引长度
s1

dataframe切片,python基础知识,python,pandas,学习

1.2.3 数组
s1=Series(np.arange(1,5),index=['a','b','c','d']) #数组
s1

dataframe切片,python基础知识,python,pandas,学习

1.2.4 字典
dict1={'a':1,'b':3,'c':5,'d':8}
s1=Series(dict1)  #不指定索引,默认以字典的key作为索引,字典值作为值
s1

dataframe切片,python基础知识,python,pandas,学习

1.3 序列、索引名字及属性

1.3.1 序列的名字和索引名字

dataframe切片,python基础知识,python,pandas,学习

1.3.2 序列的属性
ser2.name  #名字
ser2.values	#数据
ser2.index  #索引  
ser2.dtype 	 #series的数据类型 

dataframe切片,python基础知识,python,pandas,学习

1.4 序列的运算

1.4.1 序列运算保留索引

dataframe切片,python基础知识,python,pandas,学习

1.4.2 序列运算,索引自动对齐

dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习

2 DataFrame

  • DataFrame可以看成是以Series组成的字典。它和Series的区别在于,不但具有行索引,且具有列索引
  • DataFrame是二维数据结构,即数据以行和列的表格方式排列

2.1 构建DataFrame

2.1.1 二维列表创建
通过二维列表,二维元组直接创建,默认行列索引
data1=[[1, 2, 3],[4, 5, 6],[7, 8, 9]] #二维列表创建,二维元组
d1=DataFrame(data1) #默认行索引和列索引
d1  

dataframe切片,python基础知识,python,pandas,学习

创建dataframe后添加行索引和列索引
d1.index=['a','b','c']    #创建dataframe后添加行索引和列索引
d1.columns=['one','two','three']
d1

dataframe切片,python基础知识,python,pandas,学习

创建dataframe的时候加上行索引和列索引
data1=[[1, 2, 3],[4, 5, 6],[7, 8, 9]] #二维列表创建,二维元组
d1=DataFrame(data1,index=['a','b','c'],columns=['one','two','three'])#创建的时候加上行索引和列索引
d1

dataframe切片,python基础知识,python,pandas,学习

2.1.2 二维数组创建
创建dataframe时,默认行列索引
df2=DataFrame(np.arange(16).reshape(4,4)) #数组转换为dataframe
df2

dataframe切片,python基础知识,python,pandas,学习

创建dataframe时,添加行列索引名

dataframe切片,python基础知识,python,pandas,学习

2.1.3 等长列表、 元组、 数组、 序列组成的字典创建
等长列表组成的字典
data1={'a':[1,2,3],'b':[4,5,6]} #把key抽出形成columns
DataFrame(data1)   

dataframe切片,python基础知识,python,pandas,学习

等长元组组成的字典

dataframe切片,python基础知识,python,pandas,学习

等长数组组成的字典

dataframe切片,python基础知识,python,pandas,学习

等长序列组成的字典

dataframe切片,python基础知识,python,pandas,学习

2.1.4 字典组成的字典创建
dist_dict={'shanghai':{2015:10,2016:11,2018:12},'beijing':{2015:102,2016:103,2017:109}}
DataFrame(dist_dict)  #外层的key形成columns,里层的key成为index

dataframe切片,python基础知识,python,pandas,学习

2.1.5 字典的列表创建
data = [{'a': 1, 'b': 2,'d':3}, {'a': 10, 'b': 20, 'c': 30}]
DataFrame(data)

dataframe切片,python基础知识,python,pandas,学习

2.1.6 Series 创建DataFrame
data2 = [Series([1, 2],index=['a','b']),Series([1,2],index=['a','c'])]
DataFrame(data2) 

dataframe切片,python基础知识,python,pandas,学习

2.2 二维结构数据转换

二维列表、二维数组、矩阵、dataframe之间互相转换

二维列表 二维数组 矩阵 dataframe
二维列表 L - np.array(L) np.mat(L) pd.DataFrame(L)
二维数组 a a.tolist() - np.mat(a) pd.DataFrame(a)
矩阵 m m.tolist() np.array(m) - pd.DataFrame(m)
dataframe df.values.tolist() df.values np.mat(df.values) -
2.2.1 二维列表转其他

dataframe切片,python基础知识,python,pandas,学习

2.2.2 二维数组转其他

dataframe切片,python基础知识,python,pandas,学习

2.2.3 矩阵转其他

dataframe切片,python基础知识,python,pandas,学习

2.2.4 dataframe转其他

dataframe切片,python基础知识,python,pandas,学习

2.3 数据的读写

filepath_or_buffer: 文件,
		sep=',', 数据分隔符
		delimiter=None, 同上
		header='infer', 表头/列名 ,默认,用数据的第一行作为列名. None就是不用数据列名
		names=None, 列名
		index_col=None, 用哪一列作为行索引
2.3.1 读写csv文件

csv文件轻量化的文件格式,非常小,读写的时候速度都比较快

data1=[[1, 2, 3],[4, 5, 6],[7, 8, 9]] #二维列表创建,二维元组
d1=DataFrame(data1,index=['a','b','c'],columns=['one','two','three']) #创建的时候加上行索引和列索引
d1
#写
d1.to_csv('d1.csv',sep=',', header=True)   #写入csv,带header,sep指定分割符,一般使用','
#读
pd.read_csv('d1.csv',index_col=0) #将第0列设置为索引
-----------------------------------------------------------------------
#写
d1.to_csv('d2.csv',sep=',', header=False) #写入csv,不带header
#读
pd.read_csv('d2.csv',index_col=0,names=['one','two','three']) #names参数增加列名(在读的时候列名用names)
2.3.2 读写excel文件
#写到excel中的某个表格
d1.to_excel('d1.xlsx',sheet_name='d1_sheet') 
#读取excel中的某个表格
pd.read_excel('d1.xlsx',sheet_name='d1_sheet',index_col=0)

#写到多个表格,上下文管理语句
with pd.ExcelWriter('output.xlsx') as writer:
    d1.to_excel(writer, sheet_name='d1')
    d2.to_excel(writer, sheet_name='iris')
2.3.3 读html文件
df1=pd.read_html('http://www网址')
2.3.4 读粘贴板数据
pd.read_clipboard() #从粘贴板读取数据

2.4 数据的查看

df.head() #默认前5行,想查看前几行,括号中写几
df.tail() #默认尾部5行,想查看尾部几行,括号中写几
df.sample(n = 4) #随机的抽取,n = 4随机抽取4行
df.sample(frac=0.2, replace=True, weights=df1.列名, random_state=0)   #抽取20%的数据;可放回;权重(有多少条数据就应该有多少个数进行对应);随机数种子
df.shape #形状

查看数据框的形状,得到一个元组,元组中的值表示数据框的行数和列数

df.dtypes #查看数据类型
df.isnull() #缺失值
df.info() #详细信息

详细信息,包括数据类型以及缺失值
注意字符串字段类型Dtype 显示 object而不是str
因为存储的地址(有固定位宽),而不是数据本身;
str类型的值长度并不固定,不知道应该赋予多少位宽,所以显示的类型是object

df.index 行索引
df.columns 列名

2.5 索引和切片

2.5.1 行的选择
隐式索引,默认的索引选择行
df[:1] #选择第一行,默认的索引选择行

dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习

显示索引,选取索引名

dataframe切片,python基础知识,python,pandas,学习
dataframe切片,python基础知识,python,pandas,学习

2.5.2 列的选择
df['列名'] #选出的是序列
df.列名 #选出的是序列
df[['列名']] #选择一列,dataframe
df[['列名1','列名2']] #选择多列

dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习

2.5.3 行,列的选择:loc方式 显式

用的是数据框中能看到的行索引和列索引,左闭右闭

df.loc[ 行标签信息,列标签信息 ]#行列标签注意带有引号
 #如果只对列有要求,行信息不可以省略,用冒号表示全部都要

dataframe切片,python基础知识,python,pandas,学习
dataframe切片,python基础知识,python,pandas,学习

2.5.4 行,列的选择:iloc方式 隐式

用的是数据在表中的位置索引,左闭右开

df.iloc[行位置信息,列位置信息]
df1.iloc[1:3,0:2] #两部分参数,对行的需求和对列的需求
df1.iloc[1:3]#如果只对行有要求,列信息可以省略
df1.iloc[:,[2,4]] #如果只对列有要求,行信息不可以省略,用冒号表示全部都要

dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习

2.5.5 过滤
选择满足条件的行

dataframe切片,python基础知识,python,pandas,学习

选择满足条件的列

dataframe切片,python基础知识,python,pandas,学习

选择满足条件的行和列

dataframe切片,python基础知识,python,pandas,学习

2.5.6 索引设置
将某列设置为索引:set_index

dataframe切片,python基础知识,python,pandas,学习

恢复默认索引:reset_index

dataframe切片,python基础知识,python,pandas,学习

创建一个适应新索引的新对象:reindex

dataframe切片,python基础知识,python,pandas,学习

2.5.7 修改索引/列名
参数:
		index:修改行索引
		columns:修改列索引
		也可以支持函数,或者是字典映射

dataframe切片,python基础知识,python,pandas,学习

2.6 dataframe的增加和删除

2.6.1 新增行
df.loc['index名'] = 数据 #数据长度要一致

dataframe切片,python基础知识,python,pandas,学习

2.6.2 新增列
df['列名'] = 数据
df.insert(序号,'列名',数据)

dataframe切片,python基础知识,python,pandas,学习
dataframe切片,python基础知识,python,pandas,学习

2.6.3 删除行或列
#删除 要不是index 就是columns
df.drop('index名',axis=0)  #删除行,默认情况,axis=0,新生成操作
df.drop('列名',axis=1) #删除列
drop  #删除列/行
		df.drop(index=[1,2])  #删除行
		df.drop(columns=["列名"])  #删除列
del df['列名']  #直接在原数据中删除该列
df.pop("列名")  #弹出删除列

df.drop(‘index名’,axis=0) #删除行,默认情况,axis=0,新生成操作
df.drop(‘列名’,axis=1) #删除列
dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习 df.drop(index=[1,2]) #删除行
df.drop(columns=[“列名”]) #删除列
dataframe切片,python基础知识,python,pandas,学习
del df[‘列名’] #直接在原数据中删除该列

dataframe切片,python基础知识,python,pandas,学习
df.pop(“列名”) #弹出删除列
dataframe切片,python基础知识,python,pandas,学习

2.7 算术运算和对齐

2.7.1 dataframe之间相加
#dataframe的运算,索引自动对齐,行索引对齐,列索引对齐,不足的部分引入缺失值
df1 = DataFrame([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]],
    index=['a','c','b'],columns=['one','two','three'])

df2 = DataFrame(np.arange(0,16).reshape(4,4),
    index=['a','b','c','d'],columns=['one','two','three','four'])
df1+df2  #直接相加

dataframe切片,python基础知识,python,pandas,学习

df1.add(df2,fill_value=0) #调用方法,对有缺失的数据进行填充,填充完再进行相加

dataframe切片,python基础知识,python,pandas,学习

2.7.2 dataframe和数相加,每一个元素都进行操作

dataframe切片,python基础知识,python,pandas,学习

2.7.3 映射:apply,map,applymap
apply:针对行和列操作,可以对dataframe,可以对序列
map:对序列中的单个元素进行操作
applymap:对dataframe中的单个元素进行操作
2.7.3.1 apply:针对行和列操作,可以对dataframe,可以对序列
  1. apply对dataframe

dataframe切片,python基础知识,python,pandas,学习dataframe切片,python基础知识,python,pandas,学习

2.apply对序列
dataframe切片,python基础知识,python,pandas,学习

2.7.3.2 map:对序列中的单个元素进行操作

dataframe切片,python基础知识,python,pandas,学习

2.7.3.3 applymap:对dataframe中的单个元素进行操作

dataframe切片,python基础知识,python,pandas,学习文章来源地址https://www.toymoban.com/news/detail-780225.html

到了这里,关于python学习——pandas库的使用之series及DataFrame创建、查看、切片、运算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 之 Pandas DataFrame 数据类型的简介、创建的列操作

    DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一,可以这么说,掌握了 DataFrame 的用法,你就拥有了学习数据分析的基本能力。 DataFrame 是一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表

    2024年02月06日
    浏览(40)
  • Pandas教程:如何使用insert函数向Dataframe指定位置插入新的数据列(Python)

    Pandas教程:如何使用insert函数向Dataframe指定位置插入新的数据列(Python) Pandas是Python中最流行的数据处理和分析库之一。在数据分析过程中,有时候需要在Dataframe中插入新的数据列。在本教程中,我们将介绍如何使用Pandas的insert函数在指定位置插入新的数据列。 首先,我们

    2024年02月11日
    浏览(40)
  • 【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

    目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对齐前的两组数据集: 数据对齐后的数据集(通过pandas.merge()函数对齐): 代码 2)

    2024年02月09日
    浏览(50)
  • Python Pandas - Series introduction

    目录 一 创建 1 直输创建  2 用arange创建  3 结合字典  二 访问 1 用index访问values 2 表达式 条件访问 三  扩充 1  用index 增删 2 补充 isnull、notnull Series包含了一个值序列,且包含了数据标签(索引) from pandas import Series 1 直输创建 ① 默认序列index a = [1, 2 ,3 ] s = Series ( a )    查

    2024年02月14日
    浏览(40)
  • 如何使用Python的pandas库获取DataFrame数据的最小值、最大值以及自定义分位数?

    Pandas是一个非常流行的Python数据处理库,它提供了大量的方法和工具来处理和分析数据。在本文中,我将向您展示如何使用Pandas获取dataframe格式数据的最小值、最大值和自定义分位数。 1、 获取最小值和最大值 获取dataframe的最小值和最大值非常简单。可以使用Pandas的min()和

    2024年02月02日
    浏览(83)
  • 【Pandas学习】多条件筛选DataFrame

    目录 一、按列筛选 1、简单筛选 2、多条件筛选  二、按行筛选 三、多条件组合 DataFrameSeries  执行 、 、 == 这些运算符时,会将每一个元素进行比较,得到一个由结果( Boolean 值)组成的相同大小的 DataFrameSeries 返回。 相同大小的 DataFrameSeries 之间可以用 、 | 、 ~ 运算符进

    2024年02月16日
    浏览(34)
  • Python数据分析实战-Series转DataFrame并将index设为新的一列(附源码和实现效果)

    实现功能 Series转DataFrame并将index设为新的一列 实现代码 实现效果 本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python机器学习、深度学习、数据挖掘基础知识与案

    2024年02月09日
    浏览(42)
  • python中Pandas之DataFrame索引、选取数据

    总结一下 DataFrame 索引问题 先创建一个简单的 DataFrame 。 DataFrame 中有两种索引: 行索引( index ):对应最左边那一竖列 列索引( columns ):对应最上面那一横行 两种索引默认均为从 0 开始的自增整数。 可以使用 index 这个参数指定行索引, columns 这个参数指定列索引。 输出此时

    2023年04月08日
    浏览(50)
  • 【数据分析专栏之Python篇】五、pandas数据结构之Series

    大家好!本期跟大家分享的知识是 Pandas 数据结构—Series。 Series 是一种类似于一维数组的对象,由下面两部分组成: values :一组数据,ndarray 类型 index :数据索引 顾名思义 ,我们在创建 Series 对象时,需要传递一组数据,该数据大多数时候是可迭代对象。因此,下面三种创

    2024年02月14日
    浏览(58)
  • 【pandas】Python读取DataFrame的某行或某列

    行索引(index) :对应最左边那一竖列 列索引(columns) :对应最上面那一横行 .loc[]官方释义: Access a group of rows and columns by label(s) or a boolean array.(通过标签或布尔数组访问一组行和列) 官方链接 loc使用索引来取值,基础用法 df.loc[[行索引],[列索引]] .iloc[]官方释义: Purely inte

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包