pandas基礎操作

2021-08-22 07:20:47 字數 4101 閱讀 9018

pandas中最基礎的資料結構叫做dataframe,類似excel中的表結構,包含欄與列的集合,可根據欄與列運算元據,類似r的dataframe。

下面來看一些基礎操作,在資料清洗與處理階段,這些操作需熟練掌握。

1.建立dataframe

import pandas as pd 

data = pd.dataframe([['jerry','m',36],['emma','f',23],['tony','m',34]])

data

0 1 2

0 jerry m 36

1 emma f 23

2 tony m 34

增加欄位名稱

data.columns = (['name','gender','age'])

data

name gender age

0 jerry m 36

1 emma f 23

2 tony m 34

一般情況下,我們不會手動建立這種dataframe,而是與資料庫連線,直接將需要的資料匯出轉化為dataframe,方便接下來的處  理。

rs = pd.dataframe(result,columns=["account_id","state"])
2.取樣前/後數筆資料

rs.head()

rs.tail()

3.取得dataframe基本資訊

data.info()

rangeindex: 3 entries, 0 to 2

data columns (total 3 columns):

name 3 non-null object

gender 3 non-null object

age 3 non-null int64

dtypes: int64(1), object(2)

memory usage: 88.0+ bytes

data.describe()

agecount 3.0

mean 31.0

std 7.0

min 23.0

25% 28.5

50% 34.0

75% 35.0

max 36.0

data.dtypes

name object

gender object

age int64

dtype: object

data.shape

(3, 3)

#增加一行,方便下面數量的演示

data.loc[4] =

name gender age

0 jerry m 36

1 emma f 23

2 tony m 34

4 bob m 20

#檢查行數

data.shape[0]

4#檢查列數

data.shape[1]

3

data.columns

index(['name', 'gender', 'age'], dtype='object')

4.訪問與切割元素

#選取最前面的元素,注意下標從0開始,三種方式可任選一種

data.iloc[1]

data.loc[1]

data.ix[1]

name jerry

gender m

age 36

name: 0, dtype: object

#選取多行,注意不包含最後面的下標

data.iloc[1:3]

data.loc[1:3]

data.ix[1:3]

name gender age

1 emma f 23

2 tony m 34

#選取特定的一列

data["name"]

0 jerry

1 emma

2 tony

4 bob

name: name, dtype: object

#選取多列

data[["name","gender"]]

name gender

0 jerry m

1 emma f

2 tony m

4 bob m

data.ix[1:2,['name','age']]

name age

1 emma 23

2 tony 34

data[data["age"] == 23]

#與條件

data[(data["gender"] == "m") & (data["age"] == 23)]

#或條件

data[(data["gender"] == "m") | (data["age"] == 23)]

5.新增與刪除行與列

#增加列

data["employee"] = true

name gender age employee

0 jerry m 36 true

1 emma f 23 true

2 tony m 34 true

4 bob m 20 true

#刪除列

del data["employee"]

##方法2,axis =1 代表按照列刪除,預設為0,即按照行刪除

data = data.drop("employee",axis = 1)

name gender age

0 jerry m 36

1 emma f 23

2 tony m 34

4 bob m 20

data.drop(["test","test2"],1)
注意:關於drop方法有乙個可選引數inplace,需要了解,詳細內容見python drop方法刪除列之inplace引數

增加行的操作上面已經演示過。工作中較少用。

6.缺失值

#檢查gender列是否含有缺失值

data["gender"].isnull()

data["gender"].notnull()

#檢查gender列是否還有缺失值

data["gender"].isnull().values.any()

#檢查整個dataframe是否還有缺失值

data.isnull().values.any()

#計算各列缺失值的數量

data.isnull().sum()

#計算總的缺失值數量

data.isnull().sum().sum()

#捨棄含有任意缺失值的行

data.dropna()

#捨棄所有列都含有缺失值的行

data.dropna(how="all")

#捨棄超過兩列含有缺失值的行

data.dropna(thresh=2)

#用0填補缺失值

data.fillna(0)

#用年齡的平均值填補年齡這列的缺失值

data['age'].fillna(data["age"].mean())

#用各性別年齡的平均值填補缺失值

data['age'].fillna(data.groupby("gender")["age"].transform("mean"))

pandas操作基礎

documentation 中文文件 import pandas as pd series是帶標籤的一維陣列,可儲存整數 浮點數 字串 python 物件等型別的資料。軸標籤統稱為索引。呼叫pd.series函式即可建立 series。s pd.series data,index index dat...

Pandas 基本介紹和基礎操作

目錄 一 numpy和pandas的不同 二 pandas序列操作 二 pandas序列 import pandas as pd import numpy as np 1.生成乙個簡單的一維陣列 下面的語句可以理解為新建了乙個一維陣列,但是每行都有乙個標號 s pd.series 1,3,6,np....

pandas列相加 Pandas 基礎

git 上pandas學習教程,共有十章 4個板塊 pandas基礎 四類操作 四類資料 例子。原文內容系統的講解了pandas庫的使用方法,編排邏輯易懂,覆蓋面廣且含有相應練習,之前已經學習過pandas,但是感覺應用時有些費力,計畫重新按照學習教程再梳理一遍,爭取10天完成學習,enjoy ti...