【发布时间】:2012-11-06 21:54:30
【问题描述】:
我有一个非常大的数据框(~1.7MM 行 x 6 列)。相关数据的简化示例是:
City Borough
Brooklyn Brooklyn
Astoria Queens
Astoria Unspecified
Ridgewood Unspecified
Ridgewood Queens
因此,我尝试根据“城市”列中的信息填充“未指定”值。例如,City Ridgewood 在一个实例中位于未指定的自治市镇,但在数据集中的其他地方正确地将自治市镇列为皇后区。
我已经探索过 Panda 的 fillna,但它似乎不能满足我的需求。我也考虑过 np.where 方法,但我不确定它在这种情况下是如何工作的。我对 Pandas 很陌生,但也许地图/应用功能是我需要的?这可能可以通过一千种不同的方式来完成,但要寻找一些考虑到数据大小不会爬网的东西。
编辑:我能够使用以下代码创建一个字典,其中包含城市和行政区之间出现次数最多的“对”:
specified = data[['Borough','City']][data['Borough']!= 'Unspecified']
paired = specified.Borough.groupby(specified.City).max()
paired = paired.to_dict()
配对的字典以城市为键,以自治市镇为值。现在最后一步是将其应用/映射回自治市镇列...我该怎么做?
【问题讨论】:
-
替换后,是否需要这些重复值?也就是说,您是否要以两个相同的行结束,上面写着“Astoria”/“Queens”?或者您可以删除未指定值的那些吗?
-
是的,重复是可以的,也是预期的。