类似于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
数据类型>>>>>数据类型>>>><<><<><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<字符串3工资int

columns属性返回列的列表。

df.columns
['dept', 'race', 'gender', 'salary']

通过将属性指定给列表来设置新列。

importpandas_cubaspdc
0
部门种族性别薪金
0休斯顿警察局hpd白人男性45279部门(HFD)白色男性63166
2休斯顿警察局HPD黑色男性66614男性71680
4休斯顿机场系统(has)白色男性42390

属性返回所有数据的单个numpy数组。

importpandas_cubaspdc
1
importpandas_cubaspdc
2

子集选择

子集选择用括号处理。若要选择单个列,请将该列名放在括号中。

importpandas_cubaspdc
3
0白色
4白色

用字符串列表选择多个列。

importpandas_cubaspdc
4 关于"种族>年薪>>>年薪>><<><0>0>0白种人45279><><<<<<<<<<<<<<<<<<<>白种人>白种人<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>666143亚洲语

同时选择行和列,方法是在括号中传递行选择,然后是用逗号分隔的列选择。在这里,行使用整数,列使用字符串。

importpandas_cubaspdc
5 关于薪酬的问题,请参见表格>关于薪酬的问题,请参见>关于"种族"的问题,请参见>关于"身体"的问题,请参见>关于"种族"的问题,请参见>关于"身体"的问题。白色

您也可以对列使用整数。

importpandas_cubaspdc
6
性别部门HPD
2男性休斯顿警察局HPD

您可以使用单个整数,而不仅仅是列表。

importpandas_cubaspdc
7 工资表

或列的单个字符串

importpandas_cubaspdc
8 工资表

您可以对行使用切片

importpandas_cubaspdc
9 关于性别的种族和性别的种族和性别的种族和性别的种族和性别的种族和性别的种族和性别的种族和性别之间的性别和性别之间的性别差异。是的3白色男性4白色男性5西班牙裔男性

也可以使用整数或字符串对列进行切片

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白色男性1079621健康&;人类服务黑色男性1804162休斯顿消防局(HFD)西班牙裔男性人性化服务白色女性1007914休斯顿机场系统(has)白色男性120916
df=pdc.read_csv('data/employee.csv')df.head()
4 关于"种族"和"工资"的问题,请看《表格》和《种族》这两个"种族"和"种族"这两个"种族"和"种族"这两个"种族"和"工资"这两个"薪酬"之间的差异。1652163白色1007914白色120916

指定列

你可以n只分配一个完整的新列或覆盖一个旧列。不能指定数据的子集。您可以使用如下单个值指定新列:

df=pdc.read_csv('data/employee.csv')df.head()
5
部门种族性别工资奖金1000
1休斯顿消防局(HFD)白色男性6316610001000
3公共工程和工程pwe亚洲男性7168010001000

您可以使用numpy数组指定与列相同的长度。

df=pdc.read_csv('data/employee.csv')df.head()
6
部门种族性别工资奖金3536
1休斯顿消防局(HFD)白色男性631661296511
3公共工程和工程pwe亚洲人3766

您可以用一列数据框指定一个新列。

df=pdc.read_csv('data/employee.csv')df.head()
7 关于工资的问题,请参见《表格》和《关于薪酬的问题,请参见《关于薪酬的问题》和《关于薪酬的问题,请参见《关于薪酬的问题》和《关于薪酬的问题,请参见<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>><<<><<><<<><<<<<><<<5>>><<<<<<<<<<<<><><<<<><<><<>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>><<<><<><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>><>>><>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<关于这一问题,我们已经开始进行了深入的研究。><<><<><>1528>82795>><><<>>1529><<<>><<><<><<><<>><>>>>>>>>>>>1529>>><>>>>>>67050>>>>><>>>>><<>>>>>>>>>><<<<<>1532
47368153360013153452624
df=pdc.read_csv('data/employee.csv')df.head()
8
部门种族性别工资奖金总工资353648815
1休斯顿消防局(HFD)白色男性6661451167125
3公共工程&;工程PWE亚洲男性71680426775947
4休斯顿机场系统(HAS)白色男性42390376646156

算术和比较运算符

df=pdc.read_csv('data/employee.csv')df.head()
9 关于工资,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金,奖金。/td>2555335840021335421195018830
df.shape
0 <<<
工资奖金关于这一问题,我们的《每日>><<<<<<<><<<<<<><<<<<<<<<>
<<<<<<<>
<<<>
>>>>>><<<>>><<<>>>><
4
df.shape
1 ><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>
比赛关于这一点,我们不难不

聚合

大多数常用的聚合方法都是可用的。它们只作用于列而不是行。

df.shape
2
部门种族性别薪金奖金薪金总额人类服务亚洲女性2496010125913

将删除聚合不起作用的列。

df.shape
3
工资奖金总工资
056278.7462594.28358873.029
df.shape
4
部门种族性别工资奖金总工资
03001451516145
df.shape
5 工资表

检查所有工资是否大于20000

df.shape
6 工资表

计算不缺少值的数目

df.shape
7
部门种族性别工资奖金总工资
0153515351535

获取唯一值的数目。

df.shape
8
部门种族性别工资奖金总工资
065254813181524

非聚合方法

这些方法不返回单个值。

得到每列的唯一值。unique方法返回包含每个列的唯一值的数据帧列表。

df.shape
9
(1535, 4)
0
部门休斯顿机场系统娱乐
5公共工程和工程pwe
(1535, 4)
1
种族
0亚洲人美式
4白色
(1535, 4)
2 >休斯顿消防局(HFD)>休斯顿警察局HPD>公园和娱乐工程PWE
性别

用字典重命名列。

(1535, 4)
3
部门种族性别工资奖金总工资353648815
1休斯顿消防局(HFD)白色男性6661451167125
3公共工程&;工程PWE亚洲男性71680426775947
4休斯顿机场系统(HAS)白色男性42390376646156

用字符串或字符串列表删除列。

(1535, 4)
4
部门性别工资奖金总工资
0休斯顿警察局hpd男性45279353648815
1休斯顿消防局(HFD)6316612966446267125
3公共工程&;工程PWE71680426775947
4休斯顿机场系统(HAS)42390376646156
(1535, 4)
5
部门工资奖金总工资
0休斯顿警察局hpd45279353648815部门(HFD)公共工程休斯顿机场工程部系统42390376646156

保留所有列的非聚合方法

接下来的几个方法是非聚合方法,它们返回与原始数据帧形状相同的数据帧。它们只处理布尔列、整数列和浮点数列,而忽略字符串列。

绝对值

(1535, 4)
6
部门种族性别工资奖金总工资353648815
1休斯顿消防局(HFD)白色男性6661451167125
3公共工程&;工程PWE亚洲男性71680426775947
4休斯顿机场系统(HAS)白色男性42390376646156

累积最小值、最大值和总和

(1535, 4)
7
部门种族性别工资奖金总工资353648815
1休斯顿消防局(HFD)白色男性66614353667125
3公共工程&;工程PWE亚洲男性71680426775947
4休斯顿机场系统(HAS)白色男性71680426775947

将值剪辑到一个范围内。

(1535, 4)
8
部门种族性别工资奖金总工资4000048815
1休斯顿消防局(HFD)白色男性6000060000600004000060000
3公共工程&;工程PWE亚洲人600004000060000
4休斯顿机场系统(HAS)白色423904000046156

圆形数字列

(1535, 4)
9
部门种族性别薪金奖金薪金总额400049000
1休斯顿消防局(HFD)W男63000100064000
2休斯顿警察局hpd67000100067000
3公共工程和工程pwe亚洲男性72000400076000
4休斯顿机场系统(has)白色男性42000400046000

复制数据框

len(df)
0
部门种族性别工资奖金总工资353648815
1休斯顿消防局(HFD)白色男性6661451167125
3公共工程&;工程PWE亚洲男性71680426775947
4休斯顿机场系统(HAS)白色男性42390376646156

取第n个差。

len(df)
1
部门种族性别工资奖金总工资南nan
1休斯顿消防局(HFD)白色男性21335.000-3025.00018310.000
3公共工程&;工程PWE亚洲男性8514.0002971.00011485.000
4休斯顿机场系统(HAS)白色男性-24224.0003255.000-20969.000
5公共工程&;工程PWE白色男性36282.000-2228.00034054.000
6休斯顿消防局(HFD)西班牙裔男性10254.000-2672.0007582.000
7健康和公共服务黑色男性72454.0002893.00075347.000工程PWE黑色男性-22297.0001134.000-21163.000人性化服务黑色男性-125147.000-2283.000-127430.000

找出第n个百分比的变化。

len(df)
2
部门种族性别工资奖金总工资NaNNaN
1休斯顿消防局(HFD)白色休斯顿警察局HPD黑色0.471-0.855公共工程工程PWE亚洲男性0.1352.2920.178
4休斯顿机场系统(HAS)白色男性-0.3646.370-0.312
5公共工程工程PWE白色男性0.506-0.5220.448
6休斯顿消防局(HFD)西班牙裔男性0.242-0.7100.164
7健康和公共服务黑色男性0.6711.4190.685-0.4241.037-0.394
9健康和人类服务黑色男性-0.694-0.463-0.688

按一列或多列对数据框排序

len(df)
3
部门种族性别工资奖金总工资95325913
1公共工程和工程pwe西班牙裔男性26104425830362
2公共工程和工程;工程PWE黑色女性26125324729372
3休斯顿机场系统(HAS)西班牙裔女性2612583226957
4休斯顿机场系统(has)黑色女性26125246128586

降序排序

len(df)
4
部门种族性别工资奖金总工资3724214312
1休斯顿警察局hpd白色男性199596848200444
2休斯顿机场系统(has)黑色男性1861921778187970
3健康与公共服务黑色男性工程PWE白色女性1783312124180455

按多列排序

len(df)
5
部门种族性别薪金奖金薪金总额444630571
1休斯顿警察局hpd亚裔男性27914285530769
2休斯顿警察局hpd亚裔男性28169257230741
3公共工程和工程pwe亚洲男性工程PWE亚洲男性30347493835285

随机采样数据帧

len(df)
6
部门种族性别工资奖金总工资299565535
1公共工程&;工程PWE白色男性63336154764883
2休斯顿警察局HPD白色男性52514115053664

随机抽取分数

len(df)
7
部门种族性别工资奖金总工资120061547
1公共工程和工程pwe黑色男性49109359852707人性化服务黑色女性48984460253586
3休斯顿警察局HPD白色男性55461281358274
4休斯顿机场系统(has)黑色女性29286187766614448071094
6休斯顿消防局(HFD)白色男性28024447532499

替换样品

len(df)
8
部门种族性别薪金奖金薪金总额娱乐场所黑色女性31075166532740
1工程专业:拉美裔男性6703864467682
2休斯顿警察局HPD黑色男性37024153238556
3健康和公共服务黑色女性57433310660539
4公共工程和工程pwe黑色男性5337392454297

仅字符串方法

使用straccessor调用仅对字符串列可用的方法。将字符串列的名称作为所有这些方法的第一个参数传递。

len(df)
9
部门2
40
1535
0
部门部门HPD
3公共工程和工程PWE
4休斯顿机场系统(HAS)
1535
1
部门-1
40

分组

pandas_cub提供值计数方法,用于对唯一值进行简单的频率计数,并提供透视表用于分组和聚合。

value\u counts方法返回一个数据帧列表,每列一个。

1535
2
(1535, 4)
0
部门计数
0休斯顿警察局hpd570
<1休斯顿消防局(hfd)365
2公共工程和工程pwe341人性化服务
(1535, 4)
1 关于种族的计数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>381
3亚洲人87
4美洲原住民7
(1535, 4)
2
性别计数
0男性1135

如果dataframe只有一列,则返回dataframe而不是list。还可以通过将normalize参数设置为true来返回相对频率。

1535
6 关于"比赛"的计数,我们已经开始了这一天的>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
0.248
3亚洲人0.057
4美洲原住民0.005

pivot_table方法允许按一列或两列分组,并从另一列聚合值。让我们找出每个种族和性别的平均工资。所有参数必须是字符串。

1535
7 。>>
种族女性男性
58304.22258304.22260622.957亚洲58304>58304.222>58304.222304.222>55493.064
3美洲原住民58844.33368850.500
4白色66415.52863439.196

如果您不提供aggfunc则默认情况下,它将返回频率(列联表)。

1535
8
种族女性男性
0亚洲1869
1黑色207311
2西班牙裔100281
3美洲土著34
4白色72470

您可以只按一列分组。

1535
9
部门平均值人力资源服务51324.981
1休斯顿机场系统(has)53990.369
2休斯顿消防局(hfd)59960.441部门HPD60428.746
4公园和娱乐39426.151
5公共工程和工程pwe50207.806
df.dtypes
0 休斯顿机场系统(HAS)
<051324.98153990.36959960.44160428.74639426.15150207.806

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ParsePushReceiver参数   java如何从设备读取完整数据?   java将java_设置为home,但忽略错误   java如何从歌曲中对专辑进行排序?   java libnaude+windows 10 x64+Eclipse   java如何将maven目标更改为如图所示的想法中的quickicon?   java swing布局中心面板,可滚动显示多个窗口窗格   使用MOSQUITO代理的mqtt中的java SSL   java如何通过属性值获取XML字符串   java在服务器每次启动时停止GWT编译   java如何让javac搜索类路径的子目录?   可以比较java中的两个不同类吗?   JAVAAndroid活动内部类中的lang.NoClassDefFoundError   java HttpServletRequest获取请求头参数块   C++socket与java客户端的连接   java如何在Apache commons http客户端上使用SSL客户端证书   使用预编译正则表达式模式提高java速度   JavaRhino将两个已编译脚本合并为一个脚本