Python 随机 Select 行直到满足条件
Python Randomly Select Rows Until Criteria is Met
我有一个包含一些 ID 的数据框,然后是一个像这样的货币列,
Id1 Id2 Id3 Money
1 10 13 10000
2 15 12 12500
3 20 11 60000
我需要一个脚本来随机 select 行,直到我赚到 8000 万美元。我假设有一个 while 循环,例如...
while sum(money) < 80000000:
df.sample()
也许稍微改一下您的问题,您似乎正在寻找一个随机的行样本,使得 Money
的总和 < 80000000。一种方法是使用 .sample()
进行洗牌,结合 .cumsum()
:
>>> reordered = df.sample(n=df.shape[0])
>>> lim = reordered[reordered.Money.cumsum() < 80000000]
这将在没有替换的情况下进行采样。
与一行一行地获取行相比,这可能不是最节省内存的方法,但应该可以解决大小合理的问题。
我有一个包含一些 ID 的数据框,然后是一个像这样的货币列,
Id1 Id2 Id3 Money
1 10 13 10000
2 15 12 12500
3 20 11 60000
我需要一个脚本来随机 select 行,直到我赚到 8000 万美元。我假设有一个 while 循环,例如...
while sum(money) < 80000000:
df.sample()
也许稍微改一下您的问题,您似乎正在寻找一个随机的行样本,使得 Money
的总和 < 80000000。一种方法是使用 .sample()
进行洗牌,结合 .cumsum()
:
>>> reordered = df.sample(n=df.shape[0])
>>> lim = reordered[reordered.Money.cumsum() < 80000000]
这将在没有替换的情况下进行采样。
与一行一行地获取行相比,这可能不是最节省内存的方法,但应该可以解决大小合理的问题。