pandas入門06---數據清洗02

今天,咱們接着上次的數據轉換操做講解python

01 數據轉換

01-01 替代值

一般咱們使用replace來替換缺失值。 #!/usr/bin/python # -- coding: UTF-8 --dom

import pandas as pd
import numpy as np

data = pd.Series([1., -999., 2., -999., -1000, 3.])
print(data)
print(data.replace(-999,np.nan))

結果以下:函數

若是你想要一次替代多個值,能夠傳入一個列表或替代值。google

print(data.replace([-999, -1000],np.nan))

也能夠對應替換:code

print(data.replace([-999, -1000],[np.nan,0]))
# 參數也能夠經過字典傳遞
print(data.replace({-999:np.nan,-1000:0}))

01-02 離散化和分箱

連續值常常須要離散化,或分離成「箱子」進行分析。blog

舉例:對以下年齡進行分箱。排序

ages = [19, 20, 22, 25, 27, 21, 23, 27, 37, 31, 61, 45, 41, 32]
bins = [18, 25, 35, 60, 100]
cats = pd.cut(ages, bins)
print(cats)

能夠經過labels選項傳遞一個列表來自定義箱名。ip

precision=2的選項將十進制精度限制在兩位。ci

使用qcut能夠得到等長的箱。字符串

01-03 檢測和過濾異常值

np.sign(data)根據數據中的值的正負生成1和-1的數值。

下列表達式限制了-33的值:

data[np.abs(data) > 3 ] = np.sign(data) * 3

01-04 置換和隨機抽樣

使用numpy.random.permutation對DataFrame中的Series或行進行置換(隨機重排序)。

sample方法能夠幫助你選出一個不含有替代值的隨機子集。

要生成一個帶有替代值的樣本,將replace=True傳入sample方法。

01-05 計算指標/虛擬變量

若是DataFrame中的一列有k個不一樣的值,則能夠衍生一個k列的值爲1和0的矩陣或DataFrame。get_dummies函數用於實現該功能。

02 字符串操做

split能夠用來分割字符串。

strip用來清除空格換行等。

字符串"::"的join方法可傳入一個列表或者元組

in用來檢測子字符串。

find和index也能夠檢測子字符串。

區別在於:

index在字符串沒找到時會拋出異常,而find會返回-1。

count返回的是某個特定字符串在字符串中出現的次數。

replace經常使用於一種模式替代另外一種模式。

ljust,rjust用於左對齊,右對齊。

data.str.contains('google')能夠用來檢測字符串是否含有google。

相關文章
相關標籤/搜索