0
点赞
收藏
分享

微信扫一扫

【数据分析】pandas( 二)

君之言之 2023-08-08 阅读 57

目录

简介:

一,1.1来自Series字典或字典

 1.2 来自ndarray或者列表的字典:

1.3来自结构化或记录数组;

 1.4来自字典列表:

 1.4来自元组的字典:

1.5 来自Series

二,代替构造函数:

2.1DataFrame.from_dict

 2.2DataFrame.from_records

 三,列表的选择,删除,添加

四,在方法链中分配新列 

五,索引

 六,数据对齐:


简介:

本片文章我们来介绍pandas的另一个数据类型DataFrame

DataFrame是一个二维标记数据结构,其中包含可能不同类型的列。您可以将其视为电子表格或SQL表,或者Series对象的字典。它通常是最常用的pandas对象。与Series一样,DataFrame接受许多不同类型的输入:

 一维ndarray,列表,字典,或字典的Series

二维numpy.ndarray

结构化或记录数组

一个Series

其他DataFrame等

除了数据之外,您还可以选择传递索引(行标签)和列(列标签)参数。如果您传递索引和/或列,则可以保证生成的DataFrame的索引和/或列。因此,Series的字典加上特定索引将丢弃所有与传递的索引不匹配的数据。如果未传递轴标签,他们将根据常识规则从输入数据构建。

一,1.1来自Series字典或字典

生成的索引将是各个系列的索引的并集。如果有任何嵌套字典他们将首先转化为系列。如果每日有传递列,则列将是字典键的有序列表。

 可以通过访问index喝columns属性来分别访问行和列 标签:

 1.2 来自ndarray或者列表的字典:

ndarray的长度必须相同。如果传递索引,他也必须与数组的长度相同,如果没有传递索引,结果将为range(n),n为数组长度。

1.3来自结构化或记录数组;

这种情况的处理方式与数组字典相同

 1.4来自字典列表:

 1.4来自元组的字典:

可以通过传递元组字典来自动创建MultiIndexed frame

1.5 来自Series

 结果将是一个与输入Series具有相同索引的DataFrame,并且其中一列的名称是Series的原始名称(仅当 为提供其他列名称时)

二,代替构造函数:

2.1DataFrame.from_dict

DataFrame.from_dict()接受一个字典或一个近似数组序列的字典并返回一个DataFrame。他的操作类似于DataFrame构造函数,除了默认 orient参数是columns之外,还可以设置该参数index使用字典键作为行标签。

 通过orient='index' 键将是行标签。在这种情况下,还可以传递所需列的名称。

 2.2DataFrame.from_records

DataFrame.from_records()接收元组列表或具有结构化数据类型的ndarray。他的工作方式与普通DataFrame构造函数类似,只是生成的DataFrame 索引可能是结构化数据类型的特定字段。

 三,列表的选择,删除,添加

可以将DataFrame语义视为相似索引Series对象的字典。获取设置和删除列的语法与类似的dict操作相同

 也可以像字典一样删除或弹出列:

 当插入标量值时,他自然会传播以填充列:

当插入与Series不具有相同索引的DataFrame时,他将符合DataFrame的索引

四,在方法链中分配新列 

DataFrame中有一种assign()方法可以轻松创建可能从现有列派生的新列

在上面的示例中,我们插入了一个预先计算的值。我们还可以传入一个只有一个参数的函数,以便在分配给的DataFrame上进行计算。

 assign()始终返回数据的副本,保持原始的DataFrame不变。

五,索引

选择语法结果
选择列df[col]Series
按标签选择行df.loc[label]Series
按整数位置选择行df.iloc[loc]Series
切片行df[5:10]DataFrame
通过布尔向量选择行df[bool_vec]DataFrame

例如,行选择返回一个Series,其索引是DataFrame的列

 六,数据对齐:

对象之间的数据对齐会在列和索引DataFrame上自动对齐,同样,生成的对象将具有列标签和行标签的并集

 DataFrame和Series之间执行操作时,默认行为是对齐列上的索引,从而按行广播,

 

举报

相关推荐

0 条评论