自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你使用 Pandas 讀取結構化數據

大數據 數據分析
Pandas是一個基于Numpy庫開發(fā)的更高級的結構化數據分析工具,提供了Series、DataFrame、Panel等數據結構,可以很方便地對序列、截面數據(二維表)、面板數據進行處理。

?[[442917]]?

本文轉載自微信公眾號「大數據DT」,作者張秋劍 張浩 等。轉載本文請聯系大數據DT公眾號。

  • DataFrame是我們常見的二維數據表,包含多個變量(列)和樣本(行),通常被稱為數據框。
  • Series是一個一維結構的序列,包含指定的索引信息,可以被視作DataFrame中的一列或一行。其操作方法與DataFrame十分相似。
  • Panel是包含序列及截面信息的三維結構,通常被稱為面板數據。

我們可通過限定時間ID和樣本ID獲得對應的Series和DataFrame。

由于這些對象的常用操作方法十分相似,因此本文主要使用DataFrame進行演示。

1 讀取文件

Pandas庫提供了便捷讀取本地結構化數據的方法。這里主要以csv數據為例,read_csv函數可以讀取csv數據,代碼如下:

import pandas as pd
csv = pd.read_csv('data/sample.csv')
csv
id name   scores
0 1 小明 78.0
1 2 小紅 87.0
2 3 小白 99.0
3 4 小青 99999.0
4 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,重新定義列名,默認為None
  • usecols = [] list,定義讀取的列,設定后將縮短讀取數據的時間,并減小內存消耗,適合讀取大量數據,默認為None
  • dtype = {} dict,定義讀取列的數據類型,默認為None
  • nrows = None int類型,指定讀取數據的前n行,默認為None
  • na_values = ... str類型,list或dict,指定缺失值的填充值
  • na_filter = True bool類型,自動發(fā)現數據中的缺失值,默認值為True,若確定數據無缺失,可以設定值為False,以提高數據載入的速度
  • chunksize = 1000 int類型,分塊讀取,當數據量較大時,可以設定分塊讀取的行數,默認為None
  • encoding = 'utf-8' str類型,數據的編碼,Python3默認編碼為UTF-8,Python2默認編碼為ASCII
  • Pandas除了可以直接讀取csv、excel、json、html等文件生成的DataFrame,也可以在列表、元組、字典等數據結構中創(chuàng)建DataFrame。

2 讀取指定行和指定列

使用參數usecol和nrows讀取指定的列和前n行,這樣可以加快數據讀取速度。讀取原數據的兩列、兩行示例如下。

csv = pd.read_csv('data/sample.csv',\
usecols=['id','name'],\
nrows=2) #讀取'id'和'name'兩列,僅讀取前兩行
csv
id name
0 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  scores
0 1 小明 78.0
1 2 小紅 87.0
2 3 小白 99.0
3 4 小青 NaN
4 5 小蘭 NaN

5 以指定編碼方式讀取

讀取數據時,亂碼情況經常出現。這里需要先弄清楚原始數據的編碼形式,再以指定的編碼形式讀取,例如sample.csv編碼為UTF-8,這里以指定編碼(參數encoding)方式讀取。

csv = pd.read_csv('data/sample.csv',
encoding='utf-8')
csv
id name   scores
0 1 小明 78.0
1 2 小紅 87.0
2 3 小白 99.0
3 4 小青 99999.0
4 5 小蘭 NaN

關于作者:張秋劍,就職于騰訊云金融拓展中心,從事微信財富營銷管理、數據中臺、AI應用等解決方案拓展工作,研究方向包括數字化轉型、創(chuàng)新實踐等。

張浩,曾任騰訊云金融首席架構師和星環(huán)科技金融行業(yè)技術總監(jiān),主要從事大數據、人工智能、云計算、區(qū)塊鏈、聯邦學習等相關技術研發(fā)與產品設計,具有豐富的企業(yè)架構設計、企業(yè)數字化戰(zhàn)略轉型運營與業(yè)務咨詢經驗。

周大川,就職于某中央金融企業(yè)金融科技研發(fā)中心,主要從事企業(yè)級數據平臺開發(fā)、核心業(yè)務平臺建設、AI賦能金融科技創(chuàng)新等工作,具有豐富的新一代金融業(yè)務系統(tǒng)建設經驗。

常國珍,曾任畢馬威咨詢大數據總監(jiān),具有近20年數據挖掘、精益數據治理、數字化運營咨詢經驗,是金融信用風險、反欺詐和反洗錢算法領域的專家。


本文摘編自《金融商業(yè)數據分析:基于Python和SAS》,經出版方授權發(fā)布。(ISBN:9787111695837)


責任編輯:武曉燕 來源: 大數據DT
相關推薦

2022-04-01 20:29:26

Pandas數據存儲

2021-07-14 09:00:00

JavaFX開發(fā)應用

2022-12-07 08:42:35

2021-02-06 14:55:05

大數據pandas數據分析

2021-08-09 13:31:25

PythonExcel代碼

2021-08-02 07:35:19

Nacos配置中心namespace

2021-08-02 23:15:20

Pandas數據采集

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2021-09-30 18:27:38

數據倉庫ETL

2021-01-19 09:06:21

MysqlDjango數據庫

2020-05-15 08:07:33

JWT登錄單點

2021-03-12 10:01:24

JavaScript 前端表單驗證

2022-07-22 12:45:39

GNU

2021-12-15 08:49:21

gpio 子系統(tǒng)pinctrl 子系統(tǒng)API

2022-10-30 10:31:42

i2ccpuftrace

2011-04-21 10:32:44

MySQL雙機同步

2022-01-08 20:04:20

攔截系統(tǒng)調用

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2023-04-26 12:46:43

DockerSpringKubernetes
點贊
收藏

51CTO技術棧公眾號