
“loc”在index的标签上进行索引,范围包括start和end
“ix”先在index的标签上索引,索引不到就在index的位置上索引(如果index非全整数),不包括end
ix / loc 可以通过行号和行标签进行索引,比如 dfloc['a'] , dfloc[1], dfix['a'] , dfix[1]。
而iloc只能通过行号索引 , dfiloc[0] 是对的, 而dfiloc['a'] 是错误的。
loc 和 ix 大部分时候行为都差不多, 但是当假如某个行的索引标签就是一个 INT。
参考资料
知乎:>
出现打不开了,如下出现两个报错:
csv文件默认的是以逗号为分隔符,但是中文中逗号的使用率很高,爬取中文数据时就容易造成混淆,所以使用pandas写入csv时可以设置参数 sep=’\t’ ,即以tab为分隔符写入。毕竟tab在中文习惯里用的很少嘛。
那这样在后面读取csv进行数据处理时,一定记得加上一个参数delimiter:
不然你把dataframe打印出来看看就是挤在一团,没有分列的,后面对csv进行处理的时候还可能会出现标题那样的错误
此时报错2解决
参考: >
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包,可以快速地处理大规模数据。pandas主要有三种数据结构,所有的 *** 作也都是基于这三种结构而来的。
这里,最常用的是二维的DataFrame表格型结构,其次是一维的Series序列型结构,至于三维的Panel实际使用情况较少,我们暂不讨论。在使用之前,别忘了导入包。
Series 是一种一维的数组结构,主要由索引(标签)和数据值组成,能够保存任何数据类型(整型,浮点型,字符串或其他Python对象类型)。其中,索引类似于数组的下标,只不过series的索引不仅可以是数字,还可以是字符串,日期等类型。而数据值部分,不要求所有元素的类型完全相同,可以是任意类型。下图所示的就是典型的Series结构,左边是字符索引,右边是对应的值,看起来好像竖起来的数组。
DataFrame是一个二维索引的数据结构,类似于表格型结构,它的列可以存在不同的类型。你可以把它简单的想成Excel表格或SQL Table,它的每个列都是一个Series结构。它是最常用的Pandas对象,没有之一。DataFrame主要由行索引,列索引和数据值三部分构成。与Series一样,DataFrame的索引类型是多样的,数据值的类型也不做限制。
Panel是一个三维结构,由DataFrame组成,使用较少,暂不讨论。
在进行下面的题目 *** 作时,一定要先导入上面的两个数据分析包 pandas、numpy
1 如何用Python的列表创建一个series
输出:
一个series是一个一维的标记数组,可以容纳任何数据类型(整数、字符串、浮点数、Python对象等)。必须记住,与Python列表不同,一个series总是包含相同类型的数据。
2如何使用列表创建一个DataFrame
输出:
3如何使用Series 字典对象生成 DataFrame
输出:
4如何在pandas中创建一个空的DataFrame?
要创建一个完全空的pandas dataframe,我们使用以下 *** 作:
输出:
已知有这样的数据,如何进行查看
输出:
2如何查看尾部数据
3如何快速查看数据的统计摘要
4如何查询索引和列名
1简述Pandas Index
在panda中建立索引意味着简单地从DataFrame中选择特定的数据行和列。
pandas支持四种类型的多轴索引,它们是:
它们统称为索引器。这些是迄今为止索引数据最常见的方法。这四个函数有助于从DataFrame获取元素、行和列。
2Pandas 定义重新索引(Reindexing)
重新索引会更改DataFrame的行标签和列标签。重新索引意味着使数据符合特定轴上给定的一组标签。
多个 *** 作可以通过像这样的索引来完成:
输出:
3如何设置索引?
panda set_index() 是一种将列表、序列或dataframe设置为dataframe索引的方法。
语法:
DataFrameset_index(keys, inplace=False)
参数:
改变索引列
在本例中,名称列被用作DataFrame的索引列
输出:
如输出图像所示,以前索引列是一系列数字
Before Operation –
After Operation
4如何重置索引
Pandas Seriesreset_index()
函数的作用是:生成一个新的DataFrame或带有重置索引的Series。
例1: 使用 Seriesreset_index() 函数重置给定Series对象的索引
输出:
现在,我们将使用Seriesreset_index()函数来重置给定的series对象的索引
输出 :
从输出中可以看到,该 Seriesreset_index() 函数已将给定Series对象的索引重置为默认值。它保留了索引,并将其转换为列。
11先创建数据:
12选择单列,产生 Series
详见 按标签选择 。
21用标签提取一行数据:
详见 按位置选择 。
31用整数位置选择:
41用单列的值选择数据:
51用索引自动对齐新增列的数据:
1如何得到一个数列的最小值、第25百分位、中值、第75位和最大值
输出:
Pandas dataframemean(axis=None) 函数返回所请求轴(axis=0代表对列进行求平均值,axis=1代表对行进行求平均值)的值的平均值。
示例: 使用 mean() 函数查找索引轴上所有观测值的平均值。
输出:
让我们使用datafame mean()函数来查找索引轴上的平均值。
3如何将函数应用到DataFrame中的每个数据元素
可以使用 apply() 函数以便将函数应用于给定dataframe中的每一行。让我们来看看我们完成这项任务的方式。
实例:
输出:
4如何在panda中获得一个DataFrame的行数和列数
输出:
获取df的行和列计数
输出:
5如何在panda DataFrame中获得列值的总和
Pandas dataframesum() 函数返回所请求轴的值的和
语法: DataFramesum(axis=None, skipna=None, )
参数:
示例1: 使用 sum() 函数查找索引轴上所有值的总和
现在求出沿索引轴的所有值的和。我们将跳过计算和时的NaN值。
输出:
如何将新行追加到pandas DataFrame?
Pandas dataframeappend() 函数的作用是:将其他dataframe的行追加到给定的dataframe的末尾,返回一个新的dataframe对象。
语法:
DataFrameappend( ignore_index=False,)
参数:
示例1: 创建两个数据框,然后将第二个附加到第一个。
现在将df2附加到df1的末尾
输出:
请注意,第二个DataFrame的索引值保留在附加的DataFrame中。如果我们不希望发生这种情况,则可以设置ignore_index = True。
输出 :
“group by” 指的是涵盖下列一项或多项步骤的处理流程:
详见 分组 。
输出:
1先分组,再用 sum() 函数计算每组的汇总数据:
输出:
2多列分组后,生成多层索引,也可以应用 sum 函数:
输出:
如何将numpy数组转换为给定形状的DataFrame
输出:
输出:
透视表是一种可以对数据动态排布并且分类汇总的表格格式,在pandas中它被称作pivot_table。
pivot_table(data, values=None, index=None, columns=None)
参数:
详见: 数据透视表
打印输出:
用上述数据生成数据透视表非常简单:
返回结果:
1如何将列添加到pandas DataFrame?
源数据:
输出:
输出:
2如何向panda DataFrame添加索引、行或列
向DataFrame添加索引
如果您创建了一个DataFrame, panda允许将输入添加到索引参数中。它将确保您拥有所需的索引。否则,在默认情况下,DataFrame包含一个数值索引,该索引从0开始,在DataFrame的最后一行结束。
向DataFrame添加行、列
我们可以使用loc、iloc和ix将行、列插入到DataFrame中。
添加具有特定索引名的行:
输出:
3如何在panda DataFrame上进行迭代
您可以通过结合使用for循环和对DataFrame的iterrows()调用来遍历DataFrame的行。
输出:
4我们如何排序DataFrame?
我们可以通过以下几种有效地在DataFrame中执行排序:
(1)按标签
可以使用sort_index()方法对数据dataframe进行排序。可以通过传递axis参数和排序顺序来实现。默认情况下,按升序对行标签进行排序。
一维数组情况:
二维数组情况:
3参数情况:
2参数情况:
1参数情况:
一维情况:
二维情况:
一维情况:
二维情况:
一维情况:
二维情况:第三个参数指定维度
只查看行数、或者列数
逗号隔开两个索引
某些行
某些列
可以看出append()函数在二维数组中添加元素,结果转为了一维数组。
那怎么保持二维数组呢?可以设置axis参数按行或者按列添加
可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。
那么怎么保持在二维添加元素呢? 同样设置axis参数
也分按行和按列删除
标记缺失值: isnan()函数
补充缺失值:
同样axis参数可以指定拼接按行还是按列
2 hstack()函数:以水平堆叠的方式拼接数组
3 vstack()函数:以垂直堆叠的方式拼接数组
第二个参数还可以是数组,指定拆分的位置
hsplit()函数:横向拆成几个数组
vsplit()函数:纵向拆成几个数组
数组与数组之间的运算
数组与数值的运算
可以指定整个数组求和,还是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有两个重要的数据结构对象:Series和DataFrame。
Series是创建一个一维数组对象,会自动生成行标签。
会自动生成行列标签
也可以用字典形式生成数据
在用字典生成数据的基础上,同时指定行标签
例如对下表的数据进行读取
4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。
可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。
可以看出不给出header参数时,该参数默认为0。
header=1时结果如下:
header=None时结果如下:
index_col=0时,第0列为列标签
index_col=0时
usecols=[2]:指定第二列
指定多列
数据如下:
[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607png)]
nrows=3时
head()函数中参数为空默认前5行
指定head(3)时如下
numpy模块也是shape
查看特定列的书库类型
特定列数据类型转换
先查看一下所有数据
与单行相比,结果显示的格式不一样了
iloc()挑选:
或者给出区间
挑选数据要么标签,要么索引挑选
或者
或者写成区间
标签挑选
或者索引挑选
先查看一下数据
或者用字典一对一修改
[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201png)]
isin()函数查看表中是否有该值
查看特定列是否有该值
可以看出上述代码并没有替换,那怎么替换呢?
末尾插入一列
指定插入到哪列
axis参数可以指定删除行还是删除列
指定标签删除
指定索引删除
方法三
指定行标签删除
指定索引删除
方法三:
先查看所有数据
info()函数查看数据类型,还可以查看是否有缺失值
isnull()函数查看是否有缺失值
在numpy模块中用isnan()函数
删除有缺失值的行
删除整行都为缺失值的行: 需要指定how参数
不同列的缺失值设置不同的填充值
默认保留第一个重复值所在的行,删除其他重复值所在的行
保留第一个重复值所在的行
保留最后一个重复值所在的行
是重复的就删除
降序如下
参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前
获取产品为单肩包的行数据
获取数量>60的行数据
获取产品为单肩包 且 数量>60 的行数据
获取产品为单肩包 或 数量>60 的行数据
stack()函数转换成树形结构
how参数指定外连接
on参数指定按哪一列合并
concat()函数采用 全连接 的方式,没有的数设置为缺失值
重置行标签
效果与concat()一样
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
获取单列的
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804png)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
ta = pdread_excel(‘相关性分析xlsx’)
print(data)
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链转存中…(img-46g9qgQw-1637655972913)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
注意:显示索引选择时,包括最后一个索引。隐式索引则不包括。
索引器包括:loc、iloc、ix
[Out]:
[Out]:
技能提升:ix 索引器,可以将显示索引和隐式索引混合使用。但是 ix不被新版本支持了,所以作为了解就好。
:
任何处于处理Numpy形式数据的方法 ,都可以用于这些索引器。比如:掩码、花式索引;
:任何一种取值方法,都可以用于调整数据。
解释:
[Out]:
解释:
注释:
Pandas 采用标签法来表示缺失值,有两种方式:
注意:
pandas 将None与NaN看成是可等价交换的,在适当的时候,会将两者进行替换,除此之外,Pandas 会将没有标签值的数据,自动转换成NaN。实例如下:
andas:对不同类型的缺失值的转换规则
注意:Pandas 中,字符串使用object类型存储。
关于 thresh:通过thresh 设置非缺失值的最小数量(thresh=n:表没有缺失值)
方法优化:
将Series | DataFrame 的index参数设置为至少二维的索引数组
以上就是关于Pandas中ix和iloc有什么区别全部的内容,包括:Pandas中ix和iloc有什么区别、pandas数据整理、pandas读取csv文件时报错:ParserError: Error tokenizing data. C error等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)