千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

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

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

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

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

DataFrame的創建和基本操作

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

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

DataFrame的創建

  #### DataFrame的創建

  DataFrame的創建方式有如下幾種:

  > 1. 通過等?列表創建

  > 2. 通過Numpy數組創建

  > 3. 通過字典創建

  > 4. 讀取數據文件創建

  ##### 通過等?列表創建

  ```

  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

  ```

  則根據屬性設置的索引展示

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

  上面的方式適合數據量賊小,才這樣創建。

  ##### 通過Numpy數組創建

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

  ```

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

  df

  ```

  結果:

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

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

  ##### 通過字典創建

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

  假設我們有一組persons數據為字典格式:

  ```

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

  df=pd.DataFrame(dic1)

  df

  ```

  輸出結果:

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

  ##### 讀取數據文件創建

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

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

  > 參數:

  >

  > 1. filepath_or_buffer:

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

  >

  > 2. header:

  > 將行號用作列名,且是數據的開頭。

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

  >

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

  ```

  # 作用:將csv文件讀入并轉化為DataFrame對象。

  pd.read_csv('douyin.csv')

  輸出結果:

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

  # 使用方法通過read_csv()

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

  ```

  輸出結果:

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

  當然也可以連接數據庫完成數據的DataFrame加載

  > 步驟1:創建連接對象,需要提前:pip install pymysql

  >

  > 其中user是你連接mysql數據庫的用戶名,password表示用戶密碼,database表示要連接的數據庫名字,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每一列的數據類型

  >

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

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

  常用操作有:

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

  >

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

  >

  > astype(). 轉換指定數據類型

  >

  > isna 檢測缺失值

  >

  > notna 檢測沒有缺失值

  >

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

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

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

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

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

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

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

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您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
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲激情在线观看AV | 亚洲国内偷拍福利 | 日韩精品一区二区四区五区 | 一本久道久久综合婷婷日韩 | 亚洲日本va在线视频观看 | 精品久久洲久久久久护士 |