logo
Loading...

np.percentile 存入DataFrame問題 - Cupoy

你好,我在Day 7的代碼中看到以下這一段--試著將 max 取代為 q99app_train[ap...

numpy,ml100-2,ml100-2-d07

np.percentile 存入DataFrame問題

2019/05/12 下午 05:21
機器學習共學討論版
李竑霆
觀看數:12
回答數:2
收藏數:0
numpy
ml100-2
ml100-2-d07

你好,我在Day 7的代碼中看到以下這一段


--試著將 max 取代為 q99

app_train[app_train['AMT_ANNUITY'] == app_train['AMT_ANNUITY'].max()] = np.percentile(app_train[~app_train['AMT_ANNUITY'].isnull()]['AMT_ANNUITY'], q = 99)


app_train[app_train['AMT_ANNUITY'] == app_train['AMT_ANNUITY'].max()] 是 pandas.core.frame.DataFrame

np.percentile(app_train[~app_train['AMT_ANNUITY'].isnull()]['AMT_ANNUITY'], q = 99) 是 numpy.float64

為什麼可以這樣寫呢? 還且還成功的只改掉 'AMT_ANNUITY' 那欄的值,並不會報錯

回答列表

  • 2019/05/13 上午 01:56
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:1

    app_train[app_train['AMT_ANNUITY'] == app_train['AMT_ANNUITY'].max()]


    這樣寫會挑選出 app_train 當中 AMT_ANNUITY 欄位等於 max 的部分,後面


    np.percentile(app_train[~app_train['AMT_ANNUITY'].isnull()]['AMT_ANNUITY'], q = 99)


    寫法會計算 AMT_ANNUITY 的 99 百分位,應該會是一個值,所以是將後者(q99)存到前者(df)

  • 2019/05/16 下午 03:28
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    呃我換個問法,為什麼不是寫成 app_train[app_train['AMT_ANNUITY'] == app_train['AMT_ANNUITY'].max()]['AMT_ANNUITY']呢?


    => 這樣寫應該也可以,只是篩選的順序不同而已?