DataFrame
常用属性:
Python数据分析之pandas统计分析基础2


1.查看访问DataFrame中的数据——数据基本查看方式
对单列数据的访问:DataFrame的单列数据为一个Series。根据DataFrame的定义可以知晓DataFrame是一个带有标签的二维数组,每个标签相当每一列的列名。有以下两种方式来实现对单列数据的访问。
以字典访问某一个key的值的方式使用对应的列名,实现单列数据的访问。
以属性的方式访问,实现单列数据的访问。(不建议使用,易引起混淆)
对某一列的某几行访问:访问DataFrame中某一列的某几行时,单独一列的DataFrame可以视为一个Series(另一种pandas提供的类,可以看作是只有一列的DataFrame),而访问一个Series基本和访问一个一维的ndarray相同。
对多列数据访问:访问DataFrame多列数据可以将多个列索引名称视为一个列表,同时访问DataFrame多列数据中的多行数据和访问单列数据的多行数据方法基本相同。
对某几行访问:
如果只是需要访问DataFrame某几行数据的实现方式则和上述的访问多列多行相似,选择所有列,使用==“:”代替即可。
head和tail也可以得到多行数据,但是用这两种方法得到的数据都是从开始或者末尾获取的连续数据。默认参数为
访问5行==,只要在方法后方的“()”中填入访问行数即可实现目标行数的查看。

2.查看访问DataFrame中的数据——loc,iloc访问方式
loc方法是针对DataFrame索引名称的切片方法,如果传入的不是索引名称,那么切片操作将无法执行。利用loc方法,能够实现所有单层索引切片操作。loc方法使用方法如下:
DataFrame.loc[行索引名称或条件, 列索引名称]

iloc和loc区别是iloc接收的必须是行索引和列索引的位置。iloc方法的使用方法如下:
DataFrame.iloc[行索引位置, 列索引位置]

使用loc方法和iloc实现多列切片,其原理的通俗解释就是将多列的列名或者位置作为一个列表或者数据传入。
使用loc,iloc方法可以取出DataFrame中的任意数据。
在loc使用的时候内部传入的行索引名称如果为一个区间,则前后均为闭区间;iloc方法使用时内部传入的行索引位置或列索引位置为区间时,则为前闭后开区间。
loc内部还可以传入表达式,结果会返回满足表达式的所有值。

若使用detail.iloc[detail[‘order_id’]==‘458’,[1,5]]读取数据,则会报错,原因在于此处条件返回的为一个布尔值Series,而iloc可以接收的数据类型并不包括Series。根据Series的构成只要取出该Series的values就可以了。需改为detail.iloc[(detail[‘order_id’] ==‘458’).values,[1,5]])。
loc更加灵活多变,代码的可读性更高,iloc的代码简洁,但可读性不高。具体在数据分析工作中使用哪一种方法,根据情况而定,大多数时候建议使用loc方法

DataFrame数据

1.查看访问DataFrame中的数据
切片方法ix:
ix方法更像是loc和iloc两种切片方法的融合。ix方法在使用时既可以接收索引名称也可以接收索引位置。其使用方法如下。
DataFrame.ix[行索引的名称或位置或者条件, 列索引名称或位置]
使用ix方法时有个注意事项,第一条,当索引名称和位置存在部分重叠时,ix默认优先识别名称。

控制ix方法需要注意以下几点。
使用ix参数时,尽量保持行索引名称和行索引位置重叠,使用时就无须考虑取值时区间的问题。一律为闭区间。
使用列索引名称,而非列索引位置。主要用来保证代码可读性。
使用列索引位置时,需要注解。同样保证代码可读性。
除此之外ix方法还有一个缺点,就是在面对数据量巨大的任务的时候,其效率会低于loc和iloc方法,所以在日常的数据分析工作中建议使用loc和iloc方法来执行切片操作。


2.更新修改DataFrame中的数据
更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。
需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。


3.为DataFrame增添数据
DataFrame添加一列的方法非常简单,只需要新建一个列索引。并对该索引下的数据进行赋值操作即可。
新增的一列值是相同的则直接赋值一个常量即可。


4.删除某列或某行数据
删除某列或某行数据需要用到pandas提供的方法drop,drop方法的用法如下。
axis为0时表示删除行,axis为1时表示删除列。
drop(labels, axis=0, level=None, inplace=False, errors=‘raise’)
常用参数如下所示;
Python数据分析之pandas统计分析基础2


相关文章: