pandas常用於數據處理的模塊

1、合併操作

pandas.merge

pandas.merge(left, right, how=’inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False)

作用:通過執行一個類似於數據庫風格join的操作,來在columns(列)或者indexes(行)上合併DataFrame對象. 如果在columns和columns上面進行join,那麼indexes就會被忽略.同樣,要是在indexes和indexes之間或者indexes和columns之間進行join,那麼index也會被忽略.
參數:
left : DataFrame
right : DataFrame

2.合併操作
pd.concat([data_train,dummies_Cabin,dummies_Embarked,dummies_Sex,dummies_Pclass],axis=1)
將所有的DataFrame 按列合併

append:將一行連接到一個DataFrame上

3、丟棄操作
pandasDataFrame.drop

DataFrame.drop(labels, axis=0, level=None, inplace=False, errors=’raise’)

作用:返回一個指定軸上label被移除之後的對象。
參數:
**labels : 一個或者一列label值
axis : int類型或者軸的名字,這個軸和labels配合起來,比如,當axis=0的時候,就是行上面的label,當axis=1的時候,就是列上面的label**
level : int or level name, default None
For MultiIndex
inplace : bool, 默認是False,這個表示是不是在原始的dataframe上面做替換。要是是Ture的話,原始dataframe會變化,同時返回的是None。
errors : {‘ignore’, ‘raise’},默認是‘raise’。要是是‘ignore’的話,就不管error,已經存在的labels會被丟棄。

4、編碼
pandas.get_dummies()

把類別量裝換爲指示變量(其實就是one-hot encoding)

pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False)

參數:
data : 類array類型,Series或者是DataFrame類型.
prefix : 字符串,或者字符串列表,或者字符串字典.默認爲None,這裏應該傳入一個字符串列表,且這個列表的長度是和將要被get_dummis的那些列數量是相等的.同樣,prefix選項也可以是一個把列名映射到prefixes的字典.

可以利用pandas 處理類目型的特徵因子化
以Cabin爲例,原本一個屬性維度,因爲其取值可以是[‘yes’,’no’],而將其平展開爲’Cabin_yes’,’Cabin_no’兩個屬性
原本Cabin取值爲yes的,在此處的”Cabin_yes”下取值爲1,在”Cabin_no”下取值爲0
原本Cabin取值爲no的,在此處的”Cabin_yes”下取值爲0,在”Cabin_no”下取值爲1
我們使用pandas的”get_dummies”來完成這個工作
dummies_Cabin=pandas.get_dummies(*.Cabin, prefix=’Cabin’)
或者
dummies_Cabin=pandas.get_dummies(*[‘Cabin’], prefix=’Cabin’)
dummies_Cabin表示兩列屬性Cabin_yes 和 Cabin_no

例2.DataFrame

import numpy as np
import pandas as pd df = pd.DataFrame({‘A’: [‘a’, ‘b’, ‘a’], ‘B’: [‘b’, ‘a’, ‘c’],
‘C’: [1, 2, 3]})
print(“original:”)
print(df)
其中只要是類別相關的,都會被hot-encoding
每一個特徵(原始形式的列名)下面有幾種不同的類別,就會生成幾列(比如A下面只有a和b兩種形式,就會生成A_a和A_b兩列)
原始爲數字的那些特徵,保持不變
prefix表示你對於新生成的那些列想要的前綴,你可以自己命名
df_dummy=pd.get_dummies(data=df,prefix=[“A”,”B”])
print(“get dummy:”)
print(df_dummy)
這裏寫圖片描述

5、處理缺失值

pandas使用浮點數NaN(not a number)表示浮點和非浮點數組中的缺失數據.

pandas中,自己傳入的np.nan或者是python內置的None值,都會被當做NaN處理,如下例.

import numpy as np
import pandas as pd
s=pd.Series(data=[“tom”,”jack”,”kate”,np.nan])
print(s)
s[0]=None
print(s)

查找缺失值
DataFrame.isnull()
作用,返回一個和原來DataFrame一樣形狀的,裏面值爲布爾型的DataFrame.

填充缺失值
pandas.DataFrame.fillna
使用指定的方法來填充缺失值,並且返回被填充好的DataFrame
DataFrame.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None, **kwargs)
參數:
value : 可以是標量,字典,Series對象,DataFrame對象.value的作用就是用來填充那些缺失的部分.
method : 可選爲{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, 默認是None,
Method to use for filling holes in reindexed Series pad / ffill: propagate last valid observation forward to next valid backfill / bfill: use NEXT valid observation to fill gap
axis : {0 or ‘index’, 1 or ‘columns’}
inplace : 布爾值,默認爲False.要是爲True的話,那麼就會就地修改.
limit : (對於前向填充和後向填充)可以連續填充的最大數量.

6.定位選擇

.iloc[X軸的座標,Y軸的座標]
loc[‘行名’,’列名’] 可以確定一點
.values:表示數據
count.value_counts():表示統計

參考:http://blog.csdn.net/leadai/article/details/78839359
http://blog.csdn.net/chang___hong/article/details/72423898

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章