Python 板


LINE

大家好~ 我又來請教pandas的相關問題,題目一樣來自coursera introduction to Data Science in Python的第二週作業 題目:哪個county在 2010-2015 期間人口改變數量的絕對值最高? 我的想法: 1)將state從county list中去除 2)製作一個pivot table,以county為欄,並以2010-2015的人數為值 3)對每欄(每個county) filter 出最大值及最小值,並相減 4)回傳差異最大的城市 以下是我的code: census_df = pd.read_csv('https://storage.googleapis.com/py_ml_datasets/census.csv') def answer_three(): city_name = census_df["CTYNAME"].unique() state_name = census_df["STNAME"].unique() rest = list(set(city_name)^set(state_name)) city_filter = census_df[census_df["SUMLEV"]==50] city_pivot = city_filter.pivot_table(columns = ["CTYNAME"], values = ["POPESTIMATE2010","POPESTIMATE2011","POPESTIMATE2012", "POPESTIMATE2013", "POPESTIMATE2014", "POPESTIMATE2015"] ) find_diff = city_pivot[rest].max() - city_pivot[rest].min() return find_diff.idxmax() answer_three() 得出的答案是錯的(Los Angeles County,其為差異第二大的county) 答案是Haris County 我的問題是: 針對DataFrame做pivot table後,對每個欄位(county)filter 出最大最小值時, 有極少部分的county的最大最小值會被“未知的數字給覆蓋掉” pivot table的type仍為DataFrame,但到filter最大最小值時type已轉變為Series (我猜只是二維變一維的關係) 想請教: 對pivot table做filter最大最小值時,如何避免數字跑掉的問題? (我確定pivot table抓的數字是對的,但到filter階段會有極少部分的數字是錯的) 感謝大家耐心地看完 :) ------------------我是分隔線----------------------- 感謝i大的分享,突破了我的盲點 我原本的方法有一個瑕疵:人口數可能來自於多個county,因為同一個名字的county可能存在於多個state裡 於是我換了一個方法,得到的答案是正確的(程式也變得比較簡潔) 1)製作一個pivot table,以state及county為index,以2010~2015的人口數及SUMLEV為值 2)利用SUMLEV filter出county (原本的list包含state) 3)對pivot table新增三欄:2010~2015的最多及最少人口數, 與最多與最少人口數的差異 4)使用idxmax()找出差異最大值的對應county 以下是code: def answer_three(): city_table = census_df.pivot_table(values = ["SUMLEV","POPESTIMATE2010","POPESTIMATE2011","POPESTIMATE2012", "POPESTIMATE2013", "POPESTIMATE2014", "POPESTIMATE2015"], index = ["STNAME", "CTYNAME"]) city_filter = city_table[city_table["SUMLEV"] == 50] add_max = city_filter[["POPESTIMATE2010", "POPESTIMATE2011", "POPESTIMATE2012", "POPESTIMATE2013", "POPESTIMATE2014", "POPESTIMATE2015"]].max(axis = 1) add_min = city_filter[["POPESTIMATE2010", "POPESTIMATE2011", "POPESTIMATE2012", "POPESTIMATE2013", "POPESTIMATE2014", "POPESTIMATE2015"]].min(axis = 1) add_diff = add_max - add_min find_max_diff = add_diff.idxmax() return find_max_diff answer_three() 然而,type從DataFrame到Series,有極少部分資料會被未知的值給覆蓋掉 這點我還是沒有找到原因 (我的第一解:從pivot table對每欄filter出最大及最小值時) 找到原因再跟大家分享~~ 再次感謝i大詳細的說明 :) --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.243.75
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1529312610.A.599.html ※ 編輯: e9904567 (223.140.243.75), 06/18/2018 17:03:57
1F:推 iphone2003: 我沒有很確定你要做的事情 所以有錯請見諒 06/19 07:41
2F:→ iphone2003: 裡面像是Harris County,它同時對應了兩個STNAME分別 06/19 07:42
3F:→ iphone2003: 是喬治亞州和德州,所以同一個Harris County是有兩種 06/19 07:42
4F:→ iphone2003: 資料的 06/19 07:42
5F:→ iphone2003: 然後pivot_table它不是只是單純把資料整理得比較好看 06/19 07:44
6F:→ iphone2003: 而已,而是會做類似groupby的聚合運算。而pivot_table 06/19 07:44
7F:→ iphone2003: 預設的函數計算是平均值 06/19 07:44
8F:→ iphone2003: 因此實際上喬治亞州的Harris County的差異只有1224, 06/19 07:47
9F:→ iphone2003: 德州的有42萬,然後在pivot_table預設的平均計算下, 06/19 07:47
10F:→ iphone2003: 就讓'Harris County'這個地點對應的數值變成1224和42 06/19 07:47
11F:→ iphone2003: 萬的平均,因此最後的結果剩下21萬而已 06/19 07:47
※ 編輯: e9904567 (223.136.218.65), 06/19/2018 20:28:00 感謝i大!!您的推文突破我的盲點,我把新寫好的code更新在內文裡 最後有找到答案~~~ ※ 編輯: e9904567 (223.136.218.65), 06/19/2018 20:29:53
12F:推 iphone2003: 從df到series有部分值被未知數值覆蓋,這邊是什麼意 06/20 18:30
13F:→ iphone2003: 思呢? 06/20 18:30







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP