熊猫入门 - 第3课
介绍
我们从我们的数据科学第三篇帖子与熊猫一起训练。在本文中,我们将概述Pandas中使用的不同功能,以执行迭代,映射,分组和排序。这些函数允许我们制作数据的转换,为我们提供有用的信息和见解。
迭代,映射,分组和排序
2009年数据集'葡萄酒质量数据集'由Cortez等人阐述。在UCI机器学习中提供,是一个众所周知的数据集,包含葡萄酒质量信息。它包括关于红色和白葡萄酒物理化学性质的数据和质量分数。
在我们开始之前,我们将在我们的教学数据集之前可视化,我们将遵循我们将使用Pandas Head功能显示示例。
迭代
我们从与数据集一起迭代的函数开始。当我们想要逐行迭代行时,我们可能希望使用此功能。
基本迭代对熊猫对象的行为取决于类型。迭代次数时,它被视为数组,并且基本迭代产生值。与DataFrame和Panel一样的其他数据结构遵循迭代对象键的DICT样约定。
如果我们迭代DataFrame,我们获取列名:
对于DF中的元素:
打印(元素)
固定酸度
挥发性酸度
柠檬酸
剩余糖
氯化物
自由二氧化硫
二氧化硫总硫化物
密度
博士
硫酸盐
酒精
质量
要迭代DataFrame的行,我们可以使用以下功能:
-
物品
与类似的界面一致, 项目() 和iteRitems() 通过键值对迭代:
+系列:(索引,标量值)对
+ dataframe :(列,系列)对
对于wines.items()中的键,值:
打印(键)
打印(价值)
固定酸度
0 7.4
1 7.8
2 7.8
3 11.2
4 7.4
......
1594 6.2
1595 5.9
1596 6.3.
1597 5.9
1598 6.0
名称:固定酸度,长度:1599,DTYPE:FLOAT64
挥发性酸度
0 0.700
1 0.880
2 0.760
3 0.280
4 0.700
......
-
意思
它允许您迭代DataFrame的行为串联对象。它返回一个迭代器,产生每个索引值以及包含每行中的数据的系列:
for row_index,wines.iterrows()的行:
print(row_index, row, sep="\n")
0.
固定酸度7.4000.
挥发性酸度0.7000.
柠檬酸0.0000.
残留糖1.9000.
氯化物0.0760.
免费二氧化硫11.0000
总二氧化硫34.0000
密度0.9978.
pH 3.5100.
硫酸盐0.5600.
酒精9.4000.
质量5.0000
名称:0,dtype:float64
1
固定酸度7.8000.
挥发性酸度0.8800
柠檬酸0.0000.
残留糖2.6000.
氯化物0.0980.
免费二氧化硫25.0000
二氧化硫总二氧化硫67.0000
密度0.9968.
pH 3.2000.
硫酸盐0.6800.
酒精9.8000.
质量5.0000
名称:1,dtype:float64
2
固定酸度7.800.
挥发性酸度0.760.
柠檬酸0.040.
残留糖2.300.
......
-
itertiples.
这 itertuples() 方法将返回一个迭代器在Dataframe中为每行产生namedtuple。元组的第一个元素将是行的相应索引值,而剩余值是行值。
在wines.itertules()中的行:
打印(行)
PANDAS(索引= 0,_1 = 7.4,_2 = 0.7,_3 = 0.0,氯化物= 0.076,_6 = 11.0,_7 = 34.0,密度= 0.9978,pH = 3.51,硫酸盐= 0.56,醇= 9.4,质量= 5)
熊猫(索引= 1,_1 = 7.8,_2 = 0.88,_3 = 0.0,_4 = 2.6,氯化物= 0.098,_6 = 25.0,_7 = 67.0,密度= 0.9968,pH = 3.2,硫酸盐= 0.68,醇= 9.8,质量= 5)
......
结论
熊猫库为我们提供了3种不同的功能,这对给定的数据集进行了迭代相对容易。他们是:
iteRITEMS():Pandas库中的此功能可帮助用户迭代集合中存在的每个元素,列明智。此功能对于我们希望通过列逐行寻找行的某些东西,这将是有用的。这样你就不必迭代所有列。
Iterrows():Pandas库中的此函数可帮助用户迭代集合中存在的每个元素,行。如果我们想要通过全行迭代全行的情况下,此函数将是有用的,因此我们可以在不迭代整个数据集的情况下搜索特定的行值。
itertuple(): Pandas库中的该函数可帮助用户迭代数据集中存在的每一行,同时在给定数据中形成元组。当我们需要全行迭代全行但输出必须是元组格式时,此功能将很有用。
地图
我们继续使用两个最重要的功能来映射系列或数据集。
-
地图
熊猫 地图() 函数用于使用字典/函数/系列将来自系列对象的每个值映射到另一个值。它是一种方便的功能,将串联的系列从一个域映射到另一个域,因为它允许我们进行操作,以便在数据集中转换给定列的所有行。
例如,我们可以通过执行乘以100乘以100的函数来改造从“浓度”列获得的系列。
数据['密度']。地图(lambda x:x * 100)
0 99.780
1 99.680
2 99.700
3 99.800
4 99.780
......
1594 99.490.
1595 99.512.
1596 99.574.
1597 99.547
1598 99.549.
名称:密度,长度:1599,dtype:float64 ......
-
申请
可以使用dataframe的轴应用任意函数 申请() 方法,如描述性统计方法,采用可选的轴参数:
例如,我们可以通过执行将其每个值划分为100的函数来恢复“浓度”列的值,而无需从DataFrame中提取群体,因为映射函数与DataFrame合作。
def divide_by_100(x):
x.denty = x.denty / 100
返回X.
data.apply(divide_by_100,Axis ='列')
分组
分组的抽象定义是为组名提供标签的映射。创建一个 通过...分组 通过“质量”对象分组您可以执行以下操作:
葡萄酒.groupby([质量“)。Quality.count()
质量
3 10.
4 53.
5 681.
6 638.
7 199.
8 18.
名称:质量,DTYPE:INT64
您还可以创建GroupBy对象并应用自定义功能,例如,在这种情况下,我们将由“质量”和“饮酒”(Compual)和饮酒中的组:
葡萄酒.groupby(['质量','酒精'])。应用(lambda df:df.loc [df.dency.idxmax()])
最后,在分组部分内,数据分析中最有用的功能之一是 聚合功能。
在这种情况下,我们将通过“质量”(质量)进行集团,我们将获得每组酗酒者的最大值和最低价值。
葡萄酒.groupby([质量'])。酒精.agg([min,max])
排序
在这种情况下,我们将使用不同的数据集来清楚地解释Pandas内的所有排序功能。为此,我们将首先遵守我们将要操作的小示例数据集,我们将调用`Untorted_df`:
+按索引排序
UNSTORTED_DF.SORT_INDEX()
+按索引降序排序
UNSTORTED_DF.SORT_INDEX(升序= FALSE)
+按列排序
UNSTORTED_DF.SORT_INDEX(AXIS = 1)
+按值排序
UNSTORTED_DF.SORT_VALUES(按=“二”)
这一切都是为了今天!在下一章中,我们将深入潜入我们用于治疗缺失数据的功能。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/160395.html