kaiyun 手把手教你使用 Pandas 读取结构化数据

发布日期:2023-12-09 11:56    点击次数:119


kaiyun 手把手教你使用 Pandas 读取结构化数据

​[[442917]]​kaiyun

本文转载自微信公众号「大数据DT」,作家张秋剑 张浩 等。转载本文请关系大数据DT公众号。

DataFrame是咱们常见的二维数据表,包含多个变量(列)和样本(行),泛泛被称为数据框。Series是一个一维结构的序列,包含指定的索引信息,不错被视作DataFrame中的一列或一滑。其操作关节与DataFrame终点同样。Panel是包含序列及截面信息的三维结构,泛泛被称为面板数据。

咱们可通过胁制时辰ID和样本ID赢得对应的Series和DataFrame。

由于这些对象的常用操作关节终点同样,因此本文主要使用DataFrame进行演示。

1 读取文献

Pandas库提供了粗浅读取腹地结构化数据的关节。这里主要以csv数据为例,read_csv函数不错读取csv数据,代码如下:

import pandas as pdcsv = pd.read_csv('data/sample.csv')csv
id name   scores0   1  小明    78.01   2  小红    87.02   3  小白    99.03   4  小青 99999.04   5  小兰     NaN

按照旧例,Pandas会以pd为别称,以read_csv函数读取指定旅途下的文献,然后复返一个DataFrame对象。如若在号令行中打印DataFrame对象,可读性可能会略差一些;如若在Jupyter Notebook中打印的话,可读性会大幅栽培。

打印出来的DataFrame包含索引(第一列),列名(第一滑)及数据本质(除第一滑和第一列除外的部分)。

此外,read_csv函数有许多参数不错成就,如下所示。

filepath_or_buffer csv文献的旅途sep = ',' 分隔符,默许为逗号header = 0 int类型,0代表第一滑为列名,若设定为None将使用数值列名names = [] list,再行界说列名,默许为Noneusecols = [] list,界说读取的列,设定后将镌汰读取数据的时辰,并减小内存破钞,相宜读取大批数据,默许为Nonedtype = {} dict,界说读取列的数据类型,默许为Nonenrows = None int类型,指定读取数据的前n行,默许为Nonena_values = ... str类型,list或dict,指定缺失值的填充值na_filter = True bool类型,自动发现数据中的缺失值,默许值为True,若笃定数据完好失,不错设定值为False,以提高数据载入的速率chunksize = 1000 int类型,分块读取,当数据量较大时,不错设定分块读取的行数,默许为Noneencoding = 'utf-8' str类型,数据的编码,Python3默许编码为UTF-8,Python2默许编码为ASCIIPandas除了不错径直读取csv、excel、json、html等文献生成的DataFrame,也不错在列表、元组、字典等数据结构中创建DataFrame。2 读取指定行和指定列

使用参数usecol和nrows读取指定的列和前n行,这么不错加速数据读取速率。读取原数据的两列、两行示举例下。

csv = pd.read_csv('data/sample.csv',\usecols=['id','name'],\nrows=2) #读取'id'和'name'两列,仅读取前两行csv
id name0   1  小明1   2  小红
3 分块读取

参数chunksize不错指定分块读取的行数,并复返一个可迭代对象。这里,big.csv是一个4500行、4列的csv数据,设定chunksize=900,分5块读取数据,每块900行,4个变量,如下所示:

csvs = pd.read_csv('data/big.csv',chunksize=900)for i in csvs:print (i.shape)
(900, 4)(900, 4)(900, 4)(900, 4)(900, 4)

不错使用pd.concat函数读取一谈数据:

csvs = pd.read_csv('data/big.csv',chunksize=900)dat = pd.concat(csvs,ignore_index=True)dat.shape
(4500, 4)
4 将差异理数据读取为缺失值

在数据sample.csv中,“小青”的分数中有的取值为99999,这里令其读取为缺失值,操作如下:

csv = pd.read_csv('data/sample.csv',na_values='99999')csv
id name  scores0   1  小明   78.01   2  小红   87.02   3  小白   99.03   4  小青    NaN4   5  小兰    NaN
5 以指定编码方式读取

读取数据时,乱码情况常常出现。这里需要先弄了了原始数据的编码花样,再以指定的编码花样读取,举例sample.csv编码为UTF-8,这里以指定编码(参数encoding)方式读取。

csv = pd.read_csv('data/sample.csv',encoding='utf-8')csv
id name   scores0   1  小明    78.01   2  小红    87.02   3  小白    99.03   4  小青 99999.04   5  小兰     NaN

对于作家:张秋剑,赴任于腾讯云金融拓展中心,从事微信金钱营销治理、数据中台、AI期骗等治理有绸缪拓展职责,筹谋所在包括数字化转型、立异奉行等。

张浩,曾任腾讯云金融首席架构师和星环科技金融行业时刻总监,主要从事大数据、东谈主工智能、云估计、区块链、联邦学习等关联时刻研发与产物瞎想,具有丰富的企业架构瞎想、企业数字化策略转型运营与业务预计教化。

周大川,赴任于某中央金融企业金融科技研发中心,主要从事企业级数据平台开导、中枢业务平台诞生、AI赋能金融科技立异等职责,具有丰富的新一代金融业务系统诞生教化。

常国珍,曾任毕马威预计大数据总监,具有近20年数据挖掘、精益数据治理、数字化运营预计教化,是金融信用风险、反诓骗和反洗钱算法规模的民众。

本文摘编自《金融生意数据分析:基于Python和SAS》,经出书方授权发布。(ISBN:9787111695837)






栏目分类

热点资讯

相关资讯