当前位置: 首页 > 后端技术 > Python

Python数据分析入门(一):获取数据源

时间:2023-03-26 18:17:13 Python

作者|CDA数据分析师就算你的厨艺再好,如果没有食材,也做不出香甜可口的饭菜,所以想要做饭,首先要做的就是买米和蔬菜。而数据分析就像做饭。首先要做的是准备食材,也就是获取数据源。1、导入外部数据导入数据的主要方法是Pandas中的read_x()方法,其中x代表要导入的文件格式。1、导入.xlsx文件在Excel中导入.xlsx文件非常简单,双击打开即可。Python中导入.xlsx文件的方法是read_excel()。(1)基本导入导入文件时,首先要指定文件的路径,即文件存放在电脑中的哪个文件夹,默认使用电脑中的文件路径。这时候就需要在路径前加一个r(转义符)来避免路径中的转义。也可以不加转义符r,但是需要把路径中的所有字符都转换成/。导入其他格式的文件时,此规则相同。我们通常选择在路径前加上转义符r。(2)指定导入哪个Sheet。一个xlsx格式的文件可以有很多Sheets。您可以通过设置sheet_name参数来指定要导入的工作表。除了指定具体Sheet的名称外,还可以传入Sheet的顺序,从0开始计数。如果不指定sheet_name参数,则默认导入第一个sheet的文件。(3)指定行索引将本地文件导入DataFrame时,行索引使用默认从0开始的索引,可以通过设置index_col参数来设置。index_col表示将.xlsx文件中的哪一列作为行索引,从0开始计数。(4)指定列索引将本地文件导入DataFrame时,默认使用源数据表的第一行作为列索引,也可以通过设置header参数来设置列索引。header参数值默认为0,即第一行作为列索引;也可以是其他行,只需要传入具体的行即可;或者默认从0开始的数字作为列索引。(5)指定导入列有时候本地文件的列数太多,我们不需要那么多列,我们可以通过设置usecols参数来指定要导入的列。可以给usecols参数一个具体的值来表示导入哪些列,同样从0开始计数,也可以以列表的形式传入多个值来表示导入哪些列。2、导入.csv文件在Excel中导入.csv格式文件与打开.xlsx格式文件是一样的价格,只需双击即可。在Python中用于导入.csv价格的方法是read_csv()。(1)直接导入只需要指定文件路径即可。(2)Excel和DataFrame中表示分隔符的数据排列的很整齐,都是后台的工具按照一定的规则切分出来的。read_csv()默认文件中的数据是用逗号分隔的,但是有些文件是不用逗号分隔的。这时候需要手动指定分隔符,否则会报错。新建一个文件,以空格作为分隔符,如下图:如果使用默认的逗号作为分隔符,看看导入的数字是什么样子的。我们看到所有的数据还是一个整体,没有被分割开来。将分隔符换成空格后,可以看到效果:使用正确的分隔符后,数据被整齐地划分了。常见的分隔符包括逗号、空格和制表符(t)。(3)指明读取的行数假设现在有一个几百兆的文件,你想知道这个文件里有什么数据,那么此时你不需要导入所有的数据,你只需要需要看前几行。是的,所以只需设置nrows参数即可。(4)指定编码格式Python使用比较频繁的两种编码格式是UTF-8和gbk,默认的编码格式是UTF-8。我们需要根据导入文件本身的编码格式进行设置,通过设置参数encoding来设置导入的编码格式。有时两个文件看起来一样,文件名相同,格式相同,但如果编码格式不同,也是不同的文件。例如,将Excel文件另存为时,会出现两个选项,虽然都是.csv文件,但这两种格式代表两个不同的文件,如下图所示:如果文件是CSVUTF-8(逗号-separated)(*.csv)格式,导入参数时需要加上编码。也可以不加encoding参数,因为Python默认的编码格式是UTF-8。如果文件是CSV(逗号分隔)(*.csv)格式,导入时需要将编码格式改为gbk。如果使用UTF-8,会报错。(5)engine指定当文件路径或文件名包含中文时,如果仍然使用上面的导入方式,会报错。这时候我们可以通过设置engine参数来排除这个错误。出现这个错误的原因是调用read_csv()方法时,默认使用C语言作为解析语言。我们只需要将默认值C改为Python即可。如果文件格式是CSVUTF-8(逗号分隔)(.csv),那么编码格式也需要改为utf-8-sig。如果文件格式为CSV(逗号分隔)(.csv)格式,对应的编码格式为gbk。(6)其他.csv文件也涉及设置行列索引,指定导入某列或某行。设置方法同导入.xlsx文件。3、导入.txt文件(1)Excel实现在Excel中导入.txt文件时,我们需要点击菜单栏中的数据>获取外部数据>从文本,然后选择要导入的.txt文件所在的路径位于,如下图:选择路径后,会出现如下图的界面。预览文件就是我们要导入的文件。确认无误后,按下一步按钮。例如.txt文件是用空格分隔的,所以在分隔项中勾选空格复选框。如果要导入的.txt文件被其他分隔符隔开,那么选择对应的分隔符,然后直接点击Finish按钮就可以了,如下图:(2)Python导入.txt文件的方法在Python中是read_table(),这是一个通用的函数,用于将分隔符分隔的文件导入DataFrame。它不仅可以导入.txt文件,还可以导入.csv文件。从上面的代码可以看出,函数在导入.csv文件时,与read_csv()函数不同,即使是逗号分隔的价格,也需要用sep来表示分隔符,而不是likeread_csv()函数这样,如果文件是逗号分隔的,您可以将其省略。read_table()函数其他参数的用法与read_csv()函数基本相同。4.导入sql文件(1)Excel实现Excel可以直接连接数据库,点击菜单栏中的数据>从其他来源导入sql文件。如果你的数据库是SQLServer,那么直接从SQLServer中选择即可;如果是MySQL数据库,那么需要从数据连接向导中选择,然后通过建立数据向导连接MySQL,如下图:(2)Python实现Python导入SQL文件主要分为两步。第一步是将Python连接到数据库,第二步是使用Python执行SQL查询语句。将python连接到数据库时,使用python模块。Anaconda没有这个模块。我们需要手动安装它。打开AnacondaPromt,然后输入pipinstallpymysql进行安装。安装完成后,直接导入即可使用。具体的连接方法如下:连接到数据库后,我们就可以执行SQL查询语句了,使用的是read_sql()方法。read_table()函数除了sql和con这两个关键参数外,还有设置行索引的参数index_col和设置列索引的columns。示例如下:2.新数据这里的新数据主要是指新的DataFrame数据。之前我们用到过,使用pd.Dataframe()方法新建一个。3、熟悉数据当我们有了数据源后,不要急于去分析它。我们应该首先熟悉数据。只有充分熟悉数据,才能更好地分析数据。1、用head预览前几行。当数据表中包含的数据行过多,而我们想查看每一列数据是什么数据时,只能显示数据表中的前几行数据进行查看。.(1)Excel的实现其实Excel并没有严格的显示前几行。当你打开一个数据表时,所有的数据都会显示出来。如果数据行数过多,可以使用滚动条来控制。(2)Python实现在Python中,导入文件时,可以使用head()方法来控制显示哪些行。在head后面的括号中输入要显示的行数即可,默认显示前5行。2.使用shape获取数据表的大小。熟悉数据的第一点就是先看数据表的大小,即数据表有多少行多少列。(1)Excel实现在Excel中查看数据表格的行数,通常选中某一列,右下角会出现表格的行数,如下图:选择一行在Excel中,会在右下角出现表格的列数,如下图所示:(2)Python实现shape方法在Python中获取数据表格的行数和列数。Shape方法将以元组的形式返回行数和列数。上面代码中的(4,4)表示df表有4行4列的数据。这里需要注意的是,在Python中使用shape方法获取行数和列数时,行索引和列索引是不计算的,而在Excel中是计算行索引和列索引的。3.使用info获取数据类型。熟悉数据的第二点是看数据类型。不同数据类型的分析思路是不一样的。比如数值类型的数据可以求平均值,但是字符串类型的数据不能求平均值。意思是。(1)Excel实现如果想在Excel中查看某列数据的具体类型,只需选中该列,即可在菜单栏的数字栏中看到该列的数据类型。Age是数值类型,如下图:Gender是文本类型,如下图:(2)Python实现在Python中,我们可以通过info()方法查看数据中的数据类型表,无需逐列查看。调用info()方法后,会输出整个表中所有列的数据类型。通过info()方法可以看出表df的行索引index为0到3,一共4列,分别是number、age、gender和registrationtime,并且只有这4列的age是int类型,其他列都是object类型。占用208bytes内存。4.使用describe获取数值分布。熟悉数据的第三点是掌握数值的分布,即均值是多少,最大值是多少,方差和分位数分别是多少。(1)Excel实现如果想在Excel中查看某列的数值分布,那么手动选中该列,Excel右下角会显示该列的平均值、计数和总和,并且只有这三个将显示指标,如下图所示。(2)Python实现在Python中,只需要使用describe()方法即可获取所有数值类型字段的分布值。只有表df中的age列是数值类型,所以在调用describe()方法时,只计算age列的相关数值分布。我们可以创建一个包含多列数字字段的新DataFrame。上表df中的年龄、收入、家庭成员人数都是数值类型,所以在调用describe()方法时,会同时计算这三列的数值分布。这是我们近期推出的《Python数据分析入门教程》系列的第一篇文章,后续会持续更新,请继续关注我们!大数据、AI时代,专业人士都在高薪奔跑,你怎么能OUT?马上去:https://www.cda.cn/?seo