日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据分析利器--Pandas

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

1、前言

pandas是python數(shù)據(jù)分析中一個很重要的包;
在學(xué)習(xí)過程中我們需要預(yù)備的知識點有:DataFrame、Series、NumPy、NaN/None;

2、預(yù)備知識點詳解

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

3、pandas詳解

3.1 簡介:

pandas是一個Python語言的軟件包,在我們使用Python語言進(jìn)行機(jī)器學(xué)習(xí)編程的時候,這是一個非常常用的基礎(chǔ)編程庫。pandas提供了快速,靈活和富有表現(xiàn)力的數(shù)據(jù)結(jié)構(gòu),目的是使“關(guān)系”或“標(biāo)記”數(shù)據(jù)的工作既簡單又直觀。它旨在成為在Python中進(jìn)行實際數(shù)據(jù)分析的高級構(gòu)建塊。

3.2 pandas的安裝:

pip install pandas

3.3 核心數(shù)據(jù)結(jié)構(gòu)

pandas最核心的就是Series和DataFrame兩個數(shù)據(jù)結(jié)構(gòu)。

名稱維度說明
Series1維帶有標(biāo)簽的同構(gòu)類型數(shù)組
DataFrame2維表格結(jié)構(gòu),帶有標(biāo)簽,大小可變,且可以包含異構(gòu)的數(shù)據(jù)列

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

3.4 讀取CSV文件

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

read_csv()中可以用的參數(shù):

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

3.5處理無效值

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

4、Pandas常用函數(shù)

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

5、Pandas常用知識點

5.1 Dataframe寫入到csv文件

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

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

5.2 Dataframe寫入到數(shù)據(jù)庫中

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

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。