一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > DataFrame的創(chuàng)建和基本操作

DataFrame的創(chuàng)建和基本操作

來源:千鋒教育
發(fā)布人:syq
時間: 2022-08-12 13:30:00 1660282200

  前面我們介紹了Series知道它是類似于一維數(shù)組的對象,由一組數(shù)據(jù)以及之相關的數(shù)據(jù)標簽(即索引)組成。今天介紹的**DataFrame**它是Pandas中的一個表格型的數(shù)據(jù)結構(即類似excel的**二維表**),包含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾型等),而且DataFrame即有行索引也有列索引。

DataFrame的創(chuàng)建

  #### DataFrame的創(chuàng)建

  DataFrame的創(chuàng)建方式有如下幾種:

  > 1. 通過等?列表創(chuàng)建

  > 2. 通過Numpy數(shù)組創(chuàng)建

  > 3. 通過字典創(chuàng)建

  > 4. 讀取數(shù)據(jù)文件創(chuàng)建

  ##### 通過等?列表創(chuàng)建

  ```

  list1 = [[5,2,0,4],[2,3,4,5],[3,6,1,9],[4,1,0,8]]

  df=pd.DataFrame(list1)

  df

  ```

  默認會添加上行和列的索引(都是從0開始的依次往下遞增)

屏幕快照 2021-05-13 下午5.28.43

  我們也可以設置索引值,通過index和columns屬性

  ```

  list1 = [[5,2,0,4],[2,3,4,5],[3,6,1,9],[4,1,0,8]]

  df=pd.DataFrame(list1,index=list('1234'),columns=list('ABCD'))

  df

  ```

  則根據(jù)屬性設置的索引展示

屏幕快照 2021-05-13 下午5.31.30

  上面的方式適合數(shù)據(jù)量賊小,才這樣創(chuàng)建。

  ##### 通過Numpy數(shù)組創(chuàng)建

  比如我們需要創(chuàng)建一個隨機數(shù)組成的4*6的DataFrame,同時設置行或者列索引,但是要根據(jù)自己的需求來定,可以如下:

  ```

  df=pd.DataFrame(np.random.randn(4,6),index=list('ABCD'),columns=list('123456'))

  df

  ```

  結果:

屏幕快照 2021-05-13 下午5.38.00

  但是要注意index和columns后面設置的索引要與數(shù)組的shape保持一致才可以,否則報錯。

  ##### 通過字典創(chuàng)建

  通過字典創(chuàng)建就輕松很多,字典的數(shù)據(jù)可以來自爬蟲,將爬取的各種數(shù)據(jù)保存成DataFrame的格式,便于日后的數(shù)據(jù)分析。

  假設我們有一組persons數(shù)據(jù)為字典格式:

  ```

  persons={'name':['小花','狗蛋','二狗','小草'],'age':[17,20,30,20],'gender':['女','男','男','女']}

  df=pd.DataFrame(dic1)

  df

  ```

  輸出結果:

屏幕快照 2021-05-13 下午5.40.09

  ##### 讀取數(shù)據(jù)文件創(chuàng)建

  如果你的數(shù)據(jù)在某個excel或者csv,又或者在數(shù)據(jù)庫中,我們可以通過讀取這些數(shù)據(jù),轉(zhuǎn)成DataFrame對象。

  > pd.read_csv(filepath_or_buffer,header,parse_dates,index_col)

  > 參數(shù):

  >

  > 1. filepath_or_buffer:

  > 字符串,或者任何對象的read()方法。這個字符串可以是URL,有效的URL方案包括http、ftp、s3和文件??梢灾苯訉懭?文件名.csv"

  >

  > 2. header:

  > 將行號用作列名,且是數(shù)據(jù)的開頭。

  > 注意當skip_blank_lines=True時,這個參數(shù)忽略注釋行和空行。所以header=0表示第一行是數(shù)據(jù)而不是文件的第一行。

  >

  > 默認header=0(即第一行,索引從0開始)為列索引

  ```

  # 作用:將csv文件讀入并轉(zhuǎn)化為DataFrame對象。

  pd.read_csv('douyin.csv')

  輸出結果:

屏幕快照 2021-05-13 下午5.48.14

  # 使用方法通過read_csv()

  pd.read_excel('阿里巴巴2017年股票數(shù)據(jù).xlsx')

  ```

  輸出結果:

屏幕快照 2021-05-13 下午5.53.57

  當然也可以連接數(shù)據(jù)庫完成數(shù)據(jù)的DataFrame加載

  > 步驟1:創(chuàng)建連接對象,需要提前:pip install pymysql

  >

  > 其中user是你連接mysql數(shù)據(jù)庫的用戶名,password表示用戶密碼,database表示要連接的數(shù)據(jù)庫名字,charset表示編碼

  >

  > import pymysql

  >

  > con = pymysql.connect(host=localhost, user=username, password=password, database=dbname, charset=‘utf8’, use_unicode=True)

  >

  > 步驟2:定義sql語句

  >

  > sql_cmd = 'select * from 表名'

  >

  > df = pd.read_sql(sql_cmd, con)

  #### DataFrame對象的常用操作

  常用的屬性有:

  > index:返回df的索引,即行標簽

  >

  > columns:返回df的列名,即列標簽

  >

  > df.dtypes:返回df每一列的數(shù)據(jù)類型

  >

  > df.values:以numpy的形式返回df中的值  

屏幕快照 2021-05-13 下午6.39.38

  常用操作有:

  > head() 使用head可以查看前幾行的數(shù)據(jù),默認的是前5行,不過也可以自己設置。

  >

  > tail(). 使用tail可以查看后幾行的數(shù)據(jù),默認也是5行,參數(shù)可以自己設置。

  >

  > astype(). 轉(zhuǎn)換指定數(shù)據(jù)類型

  >

  > isna 檢測缺失值

  >

  > notna 檢測沒有缺失值

  >

  > describe() 可以對數(shù)據(jù)根據(jù)列進行描述性統(tǒng)計,比如最大值,最小值等  

屏幕快照 2021-05-13 下午6.49.01 

屏幕快照 2021-05-13 下午6.50.03

  同理df.notna() 檢測沒有缺失值,與df.isna()相反,就不演示了。

屏幕快照 2021-05-13 下午6.52.27

  更多關于python培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學管理及學員服務,助力更多學員實現(xiàn)高薪夢想。

  注:本文部分文字和圖片來源于網(wǎng)絡,如有侵權,請聯(lián)系刪除。版權歸原作者所有! 

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
反欺詐中所用到的機器學習模型有哪些?

一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預測一筆交易是否是欺詐。二、決策樹模...詳情>>

2023-10-14 14:09:29
軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

一、需求不清需求不明確是導致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標不同云快照的主要目標是提供一種快速恢復數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標...詳情>>

2023-10-14 12:48:59