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...