七. 高級方法

高級方法

  • 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的拷貝。

相關文章
相關標籤/搜索