【发布时间】:2014-01-07 23:39:09
【问题描述】:
我有一个(大)目录 CSV,其中列 [0:3] = 电话号码、姓名、城市、州。
我创建了一个包含 20,000 个条目的随机样本,但当然,它对人口较多的州和城市的权重很大。
我将如何编写一个 python 代码(使用 CSV 或 Pandas - 我没有可用的 linecache),该代码将平等地优先/加权每个独特的城市和每个州(单独,而不是成对),并限制每个独特的城市到 3 个选择?
TRICKIER 想法:我将如何编写一个 Python 代码,以便对于每个被选中的随机行,它会检查该城市之前是否已被选中。如果该城市之前已经被选中,它会忽略它并再次选择一条随机线,将考虑过的该城市先前选择的数量减少一个。所以,假设它随机选择了之前已经选择过两次的圣安东尼奥。脚本忽略这个选择,将它放回列表中,减少当前考虑的先前圣安东尼奥选择的数量,然后再次随机选择一行。如果它再次从圣安东尼奥挑选一条线,那么它重复之前的过程,现在将考虑的圣安东尼奥选秀权减少到 0。因此,它必须连续三次选择圣安东尼奥,才能从圣安东尼奥添加另一条线。对于未来的选秀权,它必须连续四次选秀圣安东尼奥,每多选一次选秀权。
我不知道第二个选项在“分散”我的随机选择方面的效果如何——这只是一个想法,看起来是学习更多 pythonese 的有趣方式。沿着同一思路的任何其他想法将不胜感激。对统计抽样和样本分散的见解也将受到欢迎。
【问题讨论】:
-
如果一个州有这么多城市,线路数量上限超过了州限制,应该删除哪些线路?
标签: python python-2.7 csv random pandas