使用Pandas DataFrame处理数据
pandas库是用于处理,操作和分析结构化数据的功能极为丰富的开源工具包。 数据表可以存储在熊猫可用的DataFrame对象中,并且可以将多种格式的数据(例如.csv,.tsv,.xlsx和.json)直接读取到DataFrame中。 利用内置函数,可以有效地操纵DataFrame。
从文件读取数据
大多数中小型数据集通常以分隔文件的形式提供或共享,例如逗号分隔值(CSV),制表符分隔值(TSV),Excel(.xslx)和JSON文件。 Pandas提供了内置的I / O功能,可以将多种格式的文件读取到DataFrame中,例如read_csv,read_excel和read_json等。 在本文中,我们将使用diamond数据集。
- 打开Jupyter笔记本并加载pandas和Seaborn库:
#Load pandas library
import pandas as pd
import seaborn as sns
- 指定数据集的URL:
- 从URL读取文件到pandas DataFrame:
数据集直接从URL读取!
注意:如果只需要读取特定的列,请使用usecols参数。
对于其他数据类型,可以使用该语法,如下所示:
diamonds_df_specific_cols = pd.read_csv(diamonds_url,
usecols=['carat','cut','color','clarity'])
观察和描述数据
现在我们知道了如何从数据集中读取数据,让我们继续观察和描述数据集中的数据。 pandas还提供了一种使用head()函数查看DataFrame中前几行的方法。 默认情况下,它显示5行。 为了对此进行调整,我们可以使用参数n-例如head(n = 5)。
- 加载pandas和Seaborn库:
#Load pandas library
import pandas as pd
import seaborn as sns
- 指定数据集的URL:
- 从URL读取文件到pandas DataFrame:
- 使用head函数观察数据:
diamonds_df.head()
输出结果如下:
图略
数据以列包含钻石的不同特征,例如克拉,切工质量,颜色和价格。 现在,切工,清晰度和颜色是类别变量,而x,y,z,深度,表和价格是连续变量。 类别变量将唯一的类别/名称作为值,而连续值将实数作为值。
切割,颜色和净度是具有5、7和8个唯一值的序数变量(可以通过diamonds_df.cut.nunique(),diamonds_df.color.nunique(),diamonds_df.clarity.nunique()分别获得–试试! )。 切工是切割的质量,描述为不错,良好,非常好,特级或理想; 颜色描述了从J(最差)到D(最佳)的钻石颜色。 清晰度也可以衡量钻石的清晰度,度数为I1(最差),SI1,SI2,VS1,VS2,VVS1,VVS2和IF(最佳)。
- 使用shape函数计算DataFrame中的行数和列数:
diamonds_df.shape
输出结果:
(53940, 10)
第一个数字53940表示行数,第二个10表示列数。
- 使用describe()汇总列以获取变量的分布,包括均值,中位数,最小值,最大值和不同的四分位数:
diamonds_df.describe()
输出结果:
图略
这适用于连续变量。 但是,对于分类变量,我们需要使用include = object参数。
- 在describe函数内使用include = object进行分类变量(剪切,颜色,清晰度):
diamonds_df.describe(include=object)
输出结果:
图略
现在,如果您想查看列类型以及DataFrame占用多少内存该怎么办?
- 要获取有关数据集的信息,请使用info()方法:
diamonds_df.info()
输出结果:
图略
上图显示了每一列的数据类型(float64,object,int64 …),以及DataFrame占用的内存(4.1MB)。 它还告诉DataFrame中存在的行数(53940)。
从DataFrame中选择列
添加新列到DataFrame
在DataFrame列上应用函数
从DataFrame删除列