python - 如何在多索引 Pandas 数据框中获取随机样本?

标签 python pandas random

我有一个根据以下变量编制索引的数据框:名称 - 日期。名称是某种奇怪的 ID,日期是..日期。

数据非常大,我想检查一下我有几个随机选择的 NAME 的数据。

也就是说,

  1. 从可能的名字中随机选择一个名字
  2. 检查此 NAME 的数据,按时间排序。

我不知道该怎么做。我看到我们可以使用 get_level_values,但我心里没有特定的名称,我只想多次调用随机样本。

感谢任何帮助! 谢谢!

最佳答案

import pandas as pd
import numpy as np
import random
import string

df = pd.DataFrame(data={'NAME': [''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(17)) for _ in range(10)],
            'Date': pd.date_range('1/01/2016', periods=10),
            'Whatever': np.random.randint(20, 50, 10)},
                  columns=['NAME', 'Date', 'Whatever']).set_index(['NAME', 'Date'])

random_df = df[df.index.get_loc(np.random.choice(df.index.levels[0])) == True].sort_index(level=1)
print(random_df)

返回一个如下所示的 df:

                              Whatever
NAME              Date                
xg71zOEQVOEfCZ2ne 2016-01-01        35
qLCXuEerCXi6gmF1Y 2016-01-02        26
0vDe7x8TIb5FRv7hV 2016-01-03        40
Ddc6FGKBdtcLqT53O 2016-01-04        31
IYcrKG9pjt7mHH3qn 2016-01-05        44
lAWObNTC8yXPMY3v5 2016-01-06        49
k90QWdPc5qFSCFi1c 2016-01-07        22
BWQoHo8lUyEwK9Nuf 2016-01-08        42
Xt0bxUerTan0i1eGw 2016-01-09        22
tc7PYCzpyGmYLbnxu 2016-01-10        46

一个看起来像这样的 random_df:

                              Whatever
NAME              Date                
IYcrKG9pjt7mHH3qn 2016-01-05        44

关于python - 如何在多索引 Pandas 数据框中获取随机样本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35051651/

相关文章:

c - 取决于srand和seed的rand算法是什么?

python - 累计和与随机抽奖号码比较后返回列名

python - 正则表达式匹配股票代码

python - DataFrame 对象没有属性 'sort_values'

python - 使用 python statsmodels 修复summary_col 中的标签外生变量

python - Pandas/SQL-根据不同Group计算百分比

java - 如何随机生成 75 - 100% 之间的数字?

python - float 必须是字符串还是数字?

python - 如何将关系从 M2O 倒推到 O2O?

python - 在 numpy 利率函数中获取特定值集的负利率