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/cn.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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP