日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

数据分析利器--Pandas

發布時間:2025/4/5 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据分析利器--Pandas 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、前言

pandas是python數據分析中一個很重要的包;
在學習過程中我們需要預備的知識點有:DataFrame、Series、NumPy、NaN/None;

2、預備知識點詳解

  • NumPy詳解:標準安裝的Python中用列表(list)保存一組值,可以用來當作數組使用,不過由于列表的元素可以是任何對象,因此列表中所保存的是對象的指針。這樣為了保存一個簡單的[1,2,3],需要有3個指針和三個整數對象。對于數值運算來說這種結構顯然比較浪費內存和CPU計算時間。NumPy的誕生彌補了這些不足,NumPy提供了兩種基本的對象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray是存儲單一數據類型的多維數組,而ufunc則是能夠對數組進行處理的函數。(參考:Python 科學計算 – Numpy)
  • Series: Series是一個一維的類似的數組對象,包含一個數組的數據(任何NumPy的數據類型)和一個與數組關聯的數據標簽,被叫做 索引。(參考:Series與DataFrame)
  • DataFrame:一個Datarame表示一個表格,類似電子表格的數據結構,包含一個經過排序的列表集,它們每一個都可以有不同的類型值(數字,字符串,布爾等等)。Datarame有行和列的索引;它可以被看作是一個Series的字典(每個Series共享一個索引)。與其它你以前使用過的(如R 的 data.frame)類似Datarame的結構相比,在DataFrame里的面向行和面向列的操作大致是對稱的。在底層,數據是作為一個或多個二維數組存儲的,而不是列表,字典,或其它一維的數組集合。因為DataFrame在內部把數據存儲為一個二維數組的格式,因此你可以采用分層索引以表格格式來表示高維的數據。(參考:Series與DataFrame)
  • NaN/None: python原生的None和pandas, numpy中的numpy.NaN盡管在功能上都是用來標示空缺數據。但它們的行為在很多場景下確有一些相當大的差異。(參考:NaN 和None 的詳細比較)

3、pandas詳解

3.1 簡介:

pandas是一個Python語言的軟件包,在我們使用Python語言進行機器學習編程的時候,這是一個非常常用的基礎編程庫。pandas提供了快速,靈活和富有表現力的數據結構,目的是使“關系”或“標記”數據的工作既簡單又直觀。它旨在成為在Python中進行實際數據分析的高級構建塊。

3.2 pandas的安裝:

pip install pandas

3.3 核心數據結構

pandas最核心的就是Series和DataFrame兩個數據結構。

名稱維度說明
Series1維帶有標簽的同構類型數組
DataFrame2維表格結構,帶有標簽,大小可變,且可以包含異構的數據列

DataFrame可以看做是Series的容器,即:一個DataFrame中可以包含若干個Series。更詳細的解釋參考:Series與DataFrame

3.4 讀取CSV文件

data = pd.read_csv("fileName.csv")

read_csv()中可以用的參數:

參數說明
path文件路徑
sep或者delimiter字段分隔符
header列名的行數,默認是0(第一行)
index_col列號或名稱用作結果中的行索引
names結果的列名稱列表
skiprows從起始位置跳過的行數
na_values代替NA的值序列
comment以行結尾分隔注釋的字符
parse_dates嘗試將數據解析為datetime。默認為False
keep_date_col如果將列連接到解析日期,保留連接的列。默認為False。
converters列的轉換器
dayfirst當解析可以造成歧義的日期時,以內部形式存儲。默認為False
data_parser用來解析日期的函數
nrows從文件開始讀取的行數
iterator返回一個TextParser對象,用于讀取部分內容
chunksize指定讀取塊的大小
skip_footer文件末尾需要忽略的行數
verbose輸出各種解析輸出的信息
encoding文件編碼
squeeze如果解析的數據只包含一列,則返回一個Series
thousands千數量的分隔符

3.5處理無效值

這里需要掌握三個函數:
pandas.isna(): 判斷哪些值是無效的
pandas.DataFrame.dropna(): 拋棄無效值
pandas.DataFrame.fillna(): 將無效值替換成為有效值
具體用法參照:處理無效值

4、Pandas常用函數

函數用法
DataFrame.duplicated()DataFrame的duplicated方法返回一個布爾型Series,表示各行是否重復行。
DataFrame.drop_duplicates()它用于返回一個移除了重復行的DataFrame
DataFrame.fillna()將無效值替換成為有效值

5、Pandas常用知識點

5.1 Dataframe寫入到csv文件

df.to_csv('D:\\a.csv', sep=',', header=True, index=True)

第一個參數是說把dataframe寫入到D盤下的a.csv文件中,參數sep表示字段之間用’,’分隔,header表示是否需要頭部,index表示是否需要行號。

5.2 Dataframe寫入到數據庫中

df.to_sql('tableName', con=dbcon, flavor='mysql')

第一個參數是要寫入表的名字,第二參數是sqlarchmy的數據庫鏈接對象,第三個參數表示數據庫的類型,“mysql”表示數據庫的類型為mysql。

總結

以上是生活随笔為你收集整理的数据分析利器--Pandas的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。