apply()
apply()是一個很是經常使用而且好用的方法,它容許咱們自定義一個函數而且應用到咱們的數據中。
好比咱們如今有這樣的需求,求出每一列數據的最大值與最小值的差,能夠這樣使用。
app
默認狀況,是以0軸方向應用的這個函數,可是咱們能夠指定1軸,這時候,咱們求得就是每一行的最大值與最小值的差
dom
在函數比較複雜的狀況下,你也能夠單獨的定義一個函數,而不是使用lambda表達式。
函數
applymap()
applymap()與apply()區別在於,applymap()是以數據裏面的每個元素爲單位,傳給apply裏面的函數,而apply()則是以行或者列爲單位。編碼
好比,咱們想讓咱們所有的數據每個都加上5。
3d
agg()
對一組數據進行多種統計操做,好比求和,均值,計數,只須要將須要的函數名放在一個列表裏面。excel
df = pd.DataFrame(np.random.randn(5,4), columns=['value1', 'value2', 'value3', 'value4']) df.agg(['mean', 'max', 'min'])
pivot_table()
至關於excel裏面的數據透視表
首選建立一組示例數據
df = pd.DataFrame({'key1':['a','b','b','b','a'], 'key2':['one','two','one','two','one'], 'value1':np.random.randn(5), 'value2':np.random.randn(5)}) df
使用數據透視表code
df.pivot_table(['value1'], index='key1', columns='key2')
一樣是上面的數據,還能夠進行分項彙總blog
df.pivot_table(index='key1', columns='key2', margins=True)
cross_tab()
交叉表,能夠按照指定的行和列統計分組頻數get
pd.crosstab(index = df.key1, columns = df.key2, margins=True)
map()
使用字典,Series或者函數,將Series裏面的數據作一個映射。table
train['Sex_male'] = train.Sex.map({'female':0, 'male':1})
經過以上的變換,就能夠講Sex這一列的數據中的female映射成0,male映射成1.
get_dummies()
一位有效數字(one-hot)編碼, 下面是將泰坦尼克號的港口進行編碼。
Embarked_dummies = pd.get_dummies(train.Embarked, prefix='Embarked') Embarked_dummies.head()
在編碼以後,咱們能夠配合contact()方法將編碼的結果合併到原來的數據上。
train = pd.concat([train, Embarked_dummies], axis=1)
另外,使用contact()方法還能夠將DataFrame類型進行編碼。
pd.get_dummies(train, columns=['Sex', 'Embarked'])
須要注意的是,以上的方法將會刪除train中Sex和Embarked列,返回一個train的拷貝。