Pandas資料處理學習筆記

2021-10-06 02:44:43 字數 3695 閱讀 8390

1.pandas的基本資料型別

(1)pandas一共包含了兩種資料型別,分別是series和dataframe

series型別就類似於一維陣列物件。 它是由一組資料以及一組與之相關的資料標籤(索引)組成的。

import pandas as pd

# 例項化乙個series物件,引數是乙個陣列。

obj = pd.series([1

,2,3

,4,5

,6])

print

(obj)

輸出結果:

0 11 2

2 33 4

4 55 6

dtype: int64

第一列代表索引值,第二列代表物件本身的值,最後一行是對這個物件裡邊的值進行的說明。

# 單獨獲取值

print

(obj.values)

# 單獨獲取索引

print

(obj.index)

我們也可以自己定義值和索引

import pandas as pd

# series中的第乙個引數指定物件的值,而index引數就是我們重新定義的索引。

obj = pd.series(

['a'

,'b'

,'c'

,'d'

,'e'

], index=[1

,2,3

,4,5

])

obj[1]就可以訪問到索引值為1的物件的值

宣告乙個series型別,也可以採用字典的格式:

data =

obj = pd.series(data)

可以用obj[『a』]訪問series物件值

(2)dataframe 是乙個**型的資料結構,它含有一組有序的列,每列可以是不同值的型別,數值、字串、布林值都可以。dataframe 本身有行索引,也有列索引。

import pandas as pd

data =

frame_data = pd.dataframe(data)

print

(frame_data)

結果:

60 70 80

0 小花 小小 小李

1 小公尺 小象 小麗

2 小明 小件 小張

按列訪問:frame_data[『60』]

按行訪問:iterrows()和itertuples()兩種,比如:

for item in frame_data.iterrows():

print

(item[0]

)

下面這段**中,第乙個引數就是使用了numpy進行乙個6行4列的隨機數生成,index指定了它的行索引,而columns引數指定了列索引

dates = pd.date_range(

"20201012"

, periods=6)

df = pd.dataframe(np.random.rand(6,

4), index=dates, columns=

list

("abcd"))

print

(df)

結果:

a b c d

2020-10-12 0.195159 0.580352 0.618274 0.417355

2020-10-13 0.832104 0.785943 0.248688 0.201587

2020-10-14 0.846704 0.837993 0.686663 0.254340

2020-10-15 0.563294 0.805869 0.371390 0.598472

2020-10-16 0.929190 0.608389 0.514836 0.608248

2020-10-17 0.322886 0.393414 0.883694 0.597489

2.pandas載入外部資料

(1)載入excel檔案

import pandas as pd

r = pd.read_excel(

"../data/data.xlsx"

, sheet_name=

"工作表2"

)print

(r

(2)載入資料庫中檔案

import pandas as pd

import pymysql

conn=pymysql.connect(host=

'192.168.1.57'

, port=

3306

, user=

'admin'

, passwd=

'123456'

, db=

'school'

, use_unicode=

true

, charset=

"utf8"

)sql=

'select * from class'

r=pd.read_sql(sql,con=conn)

print

(r)

3.常用資料清洗方法

(1)刪除重複資料,使用drop_duplicates()方法。(索引不變,若需要索引按順序,則需重置索引)

(2)isnull()方法來獲取到位空的資料,用df.dropna()方法把資料刪除掉。

(3)填充資料方法:

# 向前填充,指的是用缺失值的前乙個值替換

df.fillna(method=

'ffill'

)# 向後填充,指的是用缺失值的後乙個值替換

df.fillna(method=

'bfill'

)# 指定值來進行替換,如果沒有那麼預設為男,這裡也可以寫一些表示式

df.fillna(value=

'男')

(4)檢視異常值:

通常我們會通過檢視資訊info屬性,檢視描述方法describe(),或者是通過獲取標準差std等方式來觀察資料是否存在異常。

(5)具有透視表功能的函式pivot_table()

引數data,指的是你的資料集。

引數values,指的是要用來觀察分析的資料值,就是excel中的值字段。

引數index,指的是要行索引的資料值,就是excel中的行欄位。

引數columns,指的是列索引的資料值,就是excel中的列欄位。

引數aggfunc,指的是資料的統計函式,預設為統計平均值,也可以指定為numpy模組中的其他統計函式。

引數fill_value,指的是乙個標量,用來填充缺失值。

引數margins,布林值,是否需要顯示行或列的總計值,預設為false。

引數dropna,布林值,是否刪除整列為缺失的字段,預設為true。

引數margins_name,指定行或列的總計名稱,預設為all。

Python 資料處理學習筆記

2.列表 3 字典 4.集合 固定長度,不可變的物件序列 逗號分隔 tup 4,5,6tup 1 2,3 4 5 tuple轉換函式 tup tuple strings a tup 0 1.元組物件不可更改,但物件內部可以修改 2.元組拆包 tup 1,2,3 4 a,b,c,d tup a,b 1...

簡單大資料處理 學習筆記

試問年輕時誰沒有幾個夢想?大資料處理一直在我計畫之中,只不過人在江湖,身不由己,公司平台上一直沒有接觸這方面的工作,因為初創公司的資料量,最近在思考來創業公司的幾年打拼經歷,感覺收效甚微,技術層次還停留在幾年前的水平,這裡不是怪公司提供的平台不給力,只是後悔期間自己沒有合理的安排學習時間,天天忙碌加...

點雲資料處理學習筆記

三維計算視覺研究內容包括 1 三維匹配 兩幀或者多幀點雲資料之間的匹配,因為雷射掃瞄光束受物體遮擋的原因,不可能通過一次掃瞄完成對整個物體的三維點雲的獲取。因此需要從不同的位置和角度對物體進行掃瞄。三維匹配的目的就是把相鄰掃瞄的點雲資料拼接在一起。三維匹配重點關注匹配演算法,常用的演算法有最近點迭代...