python pandas庫資料分析相關知識

2021-09-29 19:14:04 字數 4483 閱讀 8331

# 匯入pandas

import pandas as pd

# path:**的路徑

df= pd.read_excel(path)

# 獲取表的行列個數

df.shape

# 將讀取的**轉換為列表

data_list = pd.read_excel(path)

.values.tolist(

)

read_excel方法中 引數的意義:

sheet_name:

sheet_name的值

對應的操作

sheet_name = 0

只讀取第一張sheet

sheet_name = 1

只讀取第二張sheet

sheet_name=「成績」

讀取名字為「成績」的sheet

sheet_name=[0,1,『成績』]

讀取第1頁,第2頁和「成績」頁

header:

指定作為列名的行,預設0,即取第一行的值為列名。資料為列名行以下的資料;若資料不含列名,則設定 header = none。

keep_default_na:

pandas預設讀取空字串時讀出的是nan,在使用 pandas.read_excel(file)這個方法時可以在後面加上keep_default_na=false,這樣讀取到空字串時讀出的就是』'而不是nan了

pd.read_excel(path, keep_default_na=

false

)

usecols:

# 只讀取第一列

pd.read_excel(path, usecols =[0

])# 讀取第一列和第二列

pd.read_excel(path, usecols =[0

,1])

# 讀取a列

pd.read_excel(path, usecols =

"a")

# 讀取a到c列

pd.read_excel(path, usecols =

"a:c"

)

1、缺失值檢視

df.isnull(

)# 返回如下:缺失值返回true,不是返回false

unnamed:

0 unnamed:

1 unnamed:20

false

true

true

1false

true

true

2false

true

false

2、 缺失值刪除

# 刪除含有nan的行

df.dropna(

)# 刪除全為nan的行

df.dropna(how =

"all"

)

3、缺失值填充

# 將所有缺失值填充為0

df.fillna(0)

# 針對性別和年齡列的缺失值進行填充

df.fillna(

)

4、重複值處理

# 對重複行進行刪除,只保留第一行

df.drop_duplicates(

)# 針對某一列或者某幾列相同值進行刪除

df.drop_duplicates(subset =

["唯一識別碼"

,"客戶姓名"])

#keep = last:保留最後乙個重複值,keep = false:不儲存重複值

df.drop_duplicates(keep = last)

5、型別轉換

# 檢視某一列的資料型別

df["唯一識別碼"

].dtype

# 將唯一識別碼轉換為float64型別

df["唯一識別碼"

].astype(

"float64"

)

6、索引設定

# 新增列索引

df.columns =

["姓名"

,"年齡"

,"性別"

]# 新增行索引

df.index =[1

,2,3

]# 重新命名列索引

df.rename(columns =

)# 重新命名行索引

df.rename(index =

)# 行索引和列索引可以同時設定

7、資料選擇

# 選擇姓名和年齡列

df[[

"姓名"

,"年齡"]]

# 選擇第一列和第三列

df.iloc[:,

[0,2

]]# 選擇第一列到第三列的第一行到第三行的資料

pd.iloc[0:

3,0:

2]# 選擇姓名和性別的一行和二行

pd.loc[

["一"

,"二"],

["姓名"

,"性別"]]

# 選擇第一行和第二行

df.loc[

["一"

,"二"]]

# 選擇第一行和第三行

df.iloc[[0

,2]]

# 選擇第一行到第四行

df.iloc[[0

,4]]

# 篩選出年齡大於50的資料

df[df[

"年齡"

]>50]

# 篩選出年齡大於50,性別為男的資料

df[(df[

"年齡"

]>50)

&(df[

"性別"]=

"男")

]# 年齡大於50的姓名和性別列

df[df[

"年齡"

]>50]

[["姓名"

,"性別"]]

# 姓名和性別的第一到第三列

df.ix[0:

3,["姓名"

,"性別"

]]

8、數值替換

# 將年齡列為240的替換為33

df["年齡"

].replace(

240,33)

# 將年齡列240和129的替換為33

df["年齡"

].replace(

[240

,129],

33)# 多對多替換

df.replace(

)

9、排序

# 根據姓名公升序,年齡降序排列,true為公升序

df.sort_values(by=

["姓名"

,"年齡"

], ascending =

[true

,false

])

10、刪除

# 刪除姓名和年齡列

df.drop(columns =

["姓名"

,"年齡"])

# 刪除第四第五列

df.drop(df.columns[[4

,5]]

, axis =1)

# 刪除第一行和第二行

df.drop(

["一"

,"二"

], axix =0)

df.drop(df.index[[0

,1]]

, axis =0)

df.drop(columns =

["一"

,"二"

])

11、查詢

# 查詢年齡列是否包含31、32的值

df["年齡"

].isin([31

,32])

# 查詢全表是否包含31、32的值

df.isin([31

,32])

12、資料運算

# c1列-c2列,加乘除類似

df["c1"

]- df[

"c2"

]# c1列減2,加乘除類似

df["c1"]-

2# 比較運算

# c1列是否大於c2列,是返回true ,!=、《類似

df["c1"

]> df[

"c2"

]# 對每一列進行求和

df.sum()

# 對c1列進行求和

df["c1"].

sum(

)# 對每一行的資料進行求和(mean():求均值,max():最大值,min+():最小值,median():中位數,mode():眾數等)

df.sum

(axis =

1)

Python Pandas庫與資料處理

讀取資料import pandas as pd pd.read csv 觀察資料 print dtypes 每列的資料型別 print head n 前n行資料 print tail n 後n行資料 print columns 每一列的名字 print shape 行列數 print loc 0 索...

python Pandas讀取資料

import pandas as pd fpath 檔案路徑 df pd.read csv fpath 使用pd.read csv讀取資料 df.head 檢視前幾行資料 df.shape 檢視資料的形狀返回df的行數和列數 df.columns 檢視df的列名 df.index 檢視索引列 df....

Python Pandas庫處理excel表

讀取 儲存excel表 data pandas.read excel filepath data.to excel filepath,index none index none表示不將dataframe的行索引存入excel讀取dataframe某行 列 讀取data中行索引為5 6,列索引為1 3...