【发布时间】:2020-05-13 07:48:49
【问题描述】:
我有一个值列表:
address_ids = [123,123,123,123,456,789,112,115]
来自address_ids 列表,我想检查单个值占整个列表的百分比。
我是这样看的,
unique_adres = list(set(address_ids))
save_vals = {}
for i in unique_adres:
temp_val = address_ids.count(i)/len(address_ids)
save_vals[i] = temp_val
save_vals
>> {456: 0.125, 112: 0.125, 115: 0.125, 789: 0.125, 123: 0.5}
123 有 50%。如果单个值具有超过 50% 的数据,我需要有一个条件,然后我想用替换和 8 个样本重新采样,其中单个属性不占整个列表的 50%。因此,它看起来像这样,(因为随机采样,这不会完全相同)并且想法是使单个属性不占整个列表的 50%。
>> {456: 0.125, 112: 0.125, 115: 0.125, 789: 0.225, 123: 0.4}
或
>> {456: 0.125, 112: 0.225, 115: 0.125, 789: 0.225, 123: 0.3}
我试过这样的,
from random import choices
for k,v in save_vals.items():
if v >= 0.50:
break
choices_vals = choices(address_ids, k=8)
但不确定,如果不符合条件if v >= 0.50:,如何通过重新采样持续检查我的条件。
任何帮助或建议都会很棒。
【问题讨论】:
标签: python-3.x random