类似于pandas的简单数据分析库
pandas-cub的Python项目详细描述
如何使用熊猫宝宝
readme.ipynb笔记本将作为熊猫幼崽的文档和使用指南。
安装
pip安装熊猫幼崽
熊猫宝宝是什么?
熊猫幼兽是一个简单的数据分析库,模拟熊猫库的功能。这个图书馆不适合认真工作。它是为ted petrou的一个python类创建的。如果您想自己完成作业,请访问此存储库。要重建库,必须通过大约40个步骤和100个测试。这是一个很好的挑战,教你如何建立自己的数据分析库的基本原理。
熊猫宝宝功能
熊猫幼崽的功能有限,但仍能执行各种各样的数据分析任务。
- 带括号的子集选择
- 算术和比较运算符(+,-,<;,!=,等等……)
- 具有大多数常用函数(min、max、mean、median等)的列的聚合
- 通过数据透视表分组
- 仅用于包含字符串的列的字符串方法
- 读取简单的逗号分隔值文件
- 其他几种方法
熊猫宝宝数据框
熊猫幼崽只有一个主对象dataframe来保存所有数据。dataframe能够保存4种数据类型:布尔、整数、浮点和字符串。所有数据都存储在numpy数组中。panda_cub数据帧没有索引(在pandas中)。列必须是字符串。
缺少值表示形式
布尔列和整数列将没有缺少的值表示形式。numpy nan用于浮点数列,python none用于字符串列。
代码示例
pandas_cub语法与pandas非常相似,但实现的方法要少得多。下面的示例将涵盖几乎所有的api。
使用"读取CSV"读取数据
pandas_cub由一个函数read_csv
组成,该函数有一个参数,即要作为数据帧读入的文件的位置。此函数只能处理简单的csv,分隔符必须是逗号。数据目录中提供了示例雇员数据集。请注意,数据帧的可视输出与pandas数据帧的输出几乎相同。默认情况下,head
方法返回前5行。
importpandas_cubaspdc
df=pdc.read_csv('data/employee.csv')df.head()
部门 | 种族 | 性别 | 工资 | ||||
---|---|---|---|---|---|---|---|
0 | 休斯顿警察局hpd | 白人 | 男性 | 45279部门(HFD) | 白色 | 男性 | 63166 |
2 | 休斯顿警察局HPD | 黑色 | 男性 | 66614 | 男性 | 71680 | |
4 | 休斯顿机场系统(has) | 白色 | 男性 | 42390 |
数据帧属性
形状
属性返回行数和列数的元组
df.shape
(1535, 4)
函数只返回行数。
len(df)
1535
dtypes
属性返回列名及其各自数据类型的数据帧。
df.dtypes数据类型>>>>>数据类型>>>><<
columns
属性返回列的列表。
df.columns
['dept', 'race', 'gender', 'salary']
通过将列
属性指定给列表来设置新列。
importpandas_cubaspdc0
部门 | 种族 | 性别 | 薪金 | ||||
---|---|---|---|---|---|---|---|
0 | 休斯顿警察局hpd | 白人 | 男性 | 45279部门(HFD) | 白色 | 男性 | 63166 |
2 | 休斯顿警察局HPD | 黑色 | 男性 | 66614 | 男性 | 71680 | |
4 | 休斯顿机场系统(has) | 白色 | 男性 | 42390 |
值
属性返回所有数据的单个numpy数组。
importpandas_cubaspdc1
importpandas_cubaspdc2
子集选择
子集选择用括号处理。若要选择单个列,请将该列名放在括号中。
importpandas_cubaspdc3
0 | 白色 | |
4 | 白色 |
用字符串列表选择多个列。
importpandas_cubaspdc4 关于"种族>年薪>>>年薪>><
同时选择行和列,方法是在括号中传递行选择,然后是用逗号分隔的列选择。在这里,行使用整数,列使用字符串。
importpandas_cubaspdc5 关于薪酬的问题,请参见表格>关于薪酬的问题,请参见>关于"种族"的问题,请参见>关于"身体"的问题,请参见>关于"种族"的问题,请参见>关于"身体"的问题。
您也可以对列使用整数。
importpandas_cubaspdc6
性别部门HPD | |||
---|---|---|---|
2 | 男性 | 休斯顿警察局HPD |
您可以使用单个整数,而不仅仅是列表。
importpandas_cubaspdc7 工资表
或列的单个字符串
importpandas_cubaspdc8 工资表
您可以对行使用切片
importpandas_cubaspdc9 关于性别的种族和性别的种族和性别的种族和性别的种族和性别的种族和性别的种族和性别的种族和性别之间的性别和性别之间的性别差异。是的
也可以使用整数或字符串对列进行切片
df=pdc.read_csv('data/employee.csv')df.head()0
部门 | 比赛 | |
---|---|---|
2 | 休斯顿警察局hpd | 西班牙裔 | 3 | 休斯顿警察局hpd | 白色 |
5 | 休斯顿警察局hpd | 西班牙裔 |
6 | 休斯顿消防局(hfd) | 西班牙裔 |
7 | 休斯顿警察局hpd | 黑色 |
df=pdc.read_csv('data/employee.csv')df.head()1
部门 | 种族 | 性别 | 男 | |
---|---|---|---|---|
2 | 休斯顿警察局hpd | 西班牙裔 | 男 | 3 | 休斯顿警察局hpd | 白人 | 男 |
4 | 消防局(HFD) | 白色 | 男性 | |
5 | 休斯顿警察局HPD | 西班牙裔 | 男性 | |
6 | 休斯顿消防局(HFD) | 西班牙裔 | 男性 | |
7 | 休斯顿警察局hpd | 黑色 | 女性 |
如果向括号中传递一列布尔数据框,则可以执行布尔选择。
df=pdc.read_csv('data/employee.csv')df.head()2 工资表关于这一点,我们已经开始关注这一问题了。><<<<
df=pdc.read_csv('data/employee.csv')df.head()3 公共工程部工程PWE
df=pdc.read_csv('data/employee.csv')df.head()4 关于"种族"和"工资"的问题,请看《表格》和《种族》这两个"种族"和"种族"这两个"种族"和"种族"这两个"种族"和"工资"这两个"薪酬"之间的差异。
指定列
你可以n只分配一个完整的新列或覆盖一个旧列。不能指定数据的子集。您可以使用如下单个值指定新列:df=pdc.read_csv('data/employee.csv')df.head()5
部门 | 种族 | 性别 | 工资 | 奖金1000 | ||
---|---|---|---|---|---|---|
1 | 休斯顿消防局(HFD) | 白色 | 男性 | 63166 | 10001000 | |
3 | 公共工程和工程pwe | 亚洲 | 男性 | 71680 | 10001000 |
您可以使用numpy数组指定与列相同的长度。
df=pdc.read_csv('data/employee.csv')df.head()6
部门 | 种族 | 性别 | 工资 | 奖金3536 | ||
---|---|---|---|---|---|---|
1 | 休斯顿消防局(HFD) | 白色 | 男性 | 63166 | 1296511 | |
3 | 公共工程和工程pwe | 亚洲人3766 |
您可以用一列数据框指定一个新列。
df=pdc.read_csv('data/employee.csv')df.head()7 关于工资的问题,请参见《表格》和《关于薪酬的问题,请参见《关于薪酬的问题》和《关于薪酬的问题,请参见《关于薪酬的问题》和《关于薪酬的问题,请参见<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>><<
df=pdc.read_csv('data/employee.csv')df.head()8
部门 | 种族 | 性别 | 工资 | 奖金 | 总工资3536 | 48815 | |
---|---|---|---|---|---|---|---|
1 | 休斯顿消防局(HFD) | 白色 | 男性 | 66614 | 511 | 67125 | |
3 | 公共工程&;工程PWE | 亚洲 | 男性 | 71680 | 4267 | 75947 | |
4 | 休斯顿机场系统(HAS) | 白色 | 男性 | 42390 | 3766 | 46156 |
算术和比较运算符
df=pdc.read_csv('data/employee.csv')df.head()9 关于工资,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金。/td>
df.shape0
工资 | 奖金关于这一问题,我们的《每日>><<<<< | << | ><<<<<< | ><<< | < | < | < | < | << | > | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|
< | < | < | < | < | << | > | ||||||
<< | < | > | ||||||||||
> | > | >> | >><<< | >>><<< | >> | >> | < | 假 | 假 | |||
4 | 假 | 假 |
df.shape1
比赛关于这一点,我们不难不 | |
---|---|
真 |
聚合
大多数常用的聚合方法都是可用的。它们只作用于列而不是行。
df.shape2
部门 | 种族 | 性别 | 薪金 | 奖金 | 薪金总额人类服务 | 亚洲 | 女性 | 24960 | 101 | 25913 |
---|
将删除聚合不起作用的列。
df.shape3
工资 | 奖金 | 总工资 | |
---|---|---|---|
0 | 56278.746 | 2594.283 | 58873.029 |
df.shape4
部门 | 种族 | 性别 | 工资 | 奖金 | 总工资 | |
---|---|---|---|---|---|---|
0 | 3 | 0 | 0 | 145 | 1516 | 145 |
df.shape5 工资表
检查所有工资是否大于20000
df.shape6 工资表
计算不缺少值的数目
df.shape7
部门 | 种族 | 性别 | 工资 | 奖金 | 总工资 | |
---|---|---|---|---|---|---|
0 | 1535 | 15351535 |
获取唯一值的数目。
df.shape8
部门 | 种族 | 性别 | 工资 | 奖金 | 总工资 | ||
---|---|---|---|---|---|---|---|
0 | 6 | 5 | 2 | 548 | 1318 | 1524 |
非聚合方法
这些方法不返回单个值。
得到每列的唯一值。unique
方法返回包含每个列的唯一值的数据帧列表。
df.shape9
(1535, 4)
0
部门休斯顿机场系统娱乐 | |
---|---|
5 | 公共工程和工程pwe |
(1535, 4)
1
种族 | ||
---|---|---|
0 | 亚洲人美式 | |
4 | 白色 |
(1535, 4)
2
性别
用字典重命名列。 3
用字符串或字符串列表删除列。 4
5
保留所有列的非聚合方法接下来的几个方法是非聚合方法,它们返回与原始数据帧形状相同的数据帧。它们只处理布尔列、整数列和浮点数列,而忽略字符串列。 绝对值 6
累积最小值、最大值和总和 7
将值剪辑到一个范围内。 8
圆形数字列 9
复制数据框 len(df)0
取第n个差。 len(df)1
找出第n个百分比的变化。 len(df)2
按一列或多列对数据框排序 len(df)3
降序排序 len(df)4
按多列排序 len(df)5
随机采样数据帧 len(df)6
随机抽取分数 len(df)7
替换样品 len(df)8
仅字符串方法使用 len(df)9
0
1
分组pandas_cub提供
2
0
2
7
如果您不提供 8
您可以只按一列分组。 9
df.dtypes0 休斯顿机场系统(HAS) | >休斯顿消防局(HFD)>休斯顿警察局HPD>公园和娱乐工程PWE|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<0 | 51324.981 | 53990.369 | 59960.441 | 60428.746 | 39426.151 | 50207.806 |