深入理解Series和DataFrame
本文最后更新于:1 年前
Series和DataFrame这两种数据结构都是第三方库(pandas)所特有的。理解他们的最好的方法就是深入理解他们的底层源码。
一、Series
Series类的构造方法是:pandas.Series(data,index,dtype,name,copy)
参数 | 说明 |
---|---|
data | 可以是类似数组的数据、迭代对象(例:range())、字典和标准值(例:1)。如果是字典,那么数据的顺序与其在字典中的顺序一致。 |
index | 可以是类似数组的数据和迭代对象。其值必须是可哈希(经过哈希运算后能产生唯一的value与key对应)的且长度与数据长度一致。默认是RangeIndex (0, 1, 2, …, n)。如果是字典,那么字典的key值会作为index值。 |
dtype | 可以是str, numpy.dtype, or ExtensionDtype, optional。默认自动判断。 |
name | 可以是str, optional。Series的名字。 |
copy | 布尔值。默认是False。 |
①对属性name的具体解释
在Series和DataFrame中,name可看作列标题。
②对属性values的具体解释
返回存储值的数组(数组内元素间用一个空格隔开)。
③len()函数的应用
len(Series对象)返回值个数。
④取值的几种方法
1 |
|
由上可得,我们可以通过数字索引和自定义索引来访问Series对象中的值。
⑤改值的几种方法
直接改值:
1 |
|
当我们用自定义索引改值时,python需要先取得相应的数字索引,再执行上述代码。
使用update()方法:
示例如下:
1 |
|
⑥加值的方法
s[新索引]=新值
⑦删值的方法
del s[索引]:直接从源数据中删除 s[索引]。
s.drop(labels=,inplace=):labels可以是单个索引也可以是多个索引组成的数组。inplace为False时,不改变源数据;inplace为True时,直接改源数据;inplace默认为False。
⑦转为字典
使用 to_dict() 方法可将Series对象转为字典。
⑧groupby()方法
示例如下:
1 |
|
⑨count()方法
返回值的个数。
⑩sort_values()方法
示例如下:
1 |
|
⑪sort_index()方法
示例如下:
1 |
|
⑫drop()方法
示例如下:
1 |
|
注意:在使用了自定义索引后,drop()不再支持数字索引;反之也成立。
二、Dataframe
Dataframe类的构造方法是:pandas.Dataframe(data,index,columns,dtype,copy)
参数 | 说明 |
---|---|
data | 可以是n维矩阵、迭代对象(例:range())和字典。如果是字典,那么key将作为列标题。 |
index | 可以是类似数组的数据和迭代对象。其值必须是可哈希(经过哈希运算后能产生唯一的value与key对应)的且长度与数据长度一致。默认是RangeIndex (0, 1, 2, …, n)。 |
columns | 可以是类似数组的数据和迭代对象。默认是RangeIndex (0, 1, 2, …, n)。 |
dtype | 默认自动判断。 |
copy | 布尔值。默认是None。 |
①转为字典
使用 to_dict() 方法可将Dataframe对象转为字典。
②行列转置
df.T
③取值的几种方法
df.at[]:
示例如下:
1 |
|
df[ start : end : step ],此方法只能取行。使用布尔索引也可以检索符合条件(多条件时,分条件需用圆括号括起)的行。
df.XX 和 df[],这两种方法只能取列。注意:属性检索法不支持数字列标题。
④改值的方法
直接改值。
使用update()方法:
1 |
|
⑤加值的方法
直接加值:df[新索引]=新值。注意:不支持属性检索法。
使用insert()方法。
⑥删值的方法
df.pop(列标题):直接从源数据中删除并返回删去的列。
使用drop()方法。
⑦sort_index()方法
示例如下:
1 |
|
⑧append()方法
示例如下:
1 |
|
⑨values属性
返回存储值的二维数据(类二维列表,行与行间用空格隔开,输出时呈现二维形式)。
tcjblog.com版权所有
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!