rladiestaipei / GoKaggleUsedCar

GoKaggle延伸讀書戶
1 stars 4 forks source link

[Data Clean]NY大的code 一些疑問 #21

Open chengyentsai opened 7 years ago

chengyentsai commented 7 years ago

[現況] 我比較慢起步,以python開始資料科學的學習之路,還很菜~~ 目前選定NY大在6/12成果發表分享的code來學習,還請大家多多指教~~小弟感激不盡。

[問題1] testset中的monthOfRegistration = 0的部分,為何要改為6?

然後在code:

df_test.monthOfRegistration[df_test.monthOfRegistration==0] = 6

執行後會出現

C:\Users\f5130\Anaconda2_2\lib\site-packages\ipykernel__main__.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy if name == 'main':

為什麼會這樣子呢?

[問題2] 在trainset的處理中,要丟掉yearOfRegistration > 2016 的資料 不過為什麼在code中執行這程序 資料都消失了

code:

05 'yearOfRegistration': 剔除2017年

dfno2017 = df[df.yearOfRegistration<2017] print dfno2017.shape

output: (0,17)

[問題3] 在處理丟掉powerPS = 0 ,power >500 的資料時 也碰到上述的問題

df = df[(df.powerPS > 0)&(df.powerPS < 500)] print df.shape

output: (0,17)

大概以上~ 再麻煩知道的人解決小弟的疑惑~~非常感激

githubningyuan commented 7 years ago

[問題1] "testset中的monthOfRegistration = 0的部分,為何要改為6?"

:因為monthOfRegistration屬性只有用來計算稍後建立的ages屬性,即二手車車齡, testset中的註冊月份=0是有問題的(因為沒有"0月"),經過檢查也不像只是1月的另稱, 所以只好用testset註冊月份的平均值,先隨便來替代一下,用來算車齡。

"df_test.monthOfRegistration[df_test.monthOfRegistration==0] = 6 執行後會出現... C:\Users\f5130\Anaconda2_2\lib\site-packages\ipykernelmain.py:1: SettingWithCopyWarning: ... 為什麼會這樣子呢?"

:我的也會出現 不清楚原因XDD 不過似乎沒關係。

[問題2] "在trainset的處理中,要丟掉yearOfRegistration > 2016 的資料 不過為什麼在code中執行這程序 資料都消失了"

:請問在篩選之前,以下兩個指令有結果嗎? df.shape df[df.yearOfRegistration==2016]

[問題3] "在處理丟掉powerPS = 0 ,power >500 的資料時 也碰到上述的問題..."

:有可能df已經空掉了 可能先往回檢查這樣

我也是新手 大家一起交流學習!

chengyentsai commented 7 years ago

[問題2]

[In] df.shape [Out] (4974, 17) [In] df[df.yearOfRegistration==2016] [Out] 沒資料了

這樣是正常的嗎?

githubningyuan commented 7 years ago

可能還算正常?大概清資料的過程把2016年的都丟了 試試看 df[df.yearOfRegistration>2010] 如果還是沒資料,就很怪了:D (我這邊清出來的資料 2016年是有留下)