使用熊猫如何将列数据字段用于随机样本

时间:2019-12-20 05:47:54

标签: python pandas sample

我知道如何从熊猫数据框中随机采样几行。

使用示例命令

df_sample = df.sample(n=10)

不过,我需要的是下面数据框中的随机列(即Village)。

Dummy Data:

例如:我想随机选择3个村庄的全部数据,即A,B和C村。将随机选择A,B和C村庄,并为我们提供这3个村庄的全部数据的输出。

同样,

enter image description here

这是我的代码

>>> import pandas as pd
>>> import numpy as np
>>> df=pd.read_excel("/home/Study.xlsx")
>>> df=df.sample(n=3)
>>> df
    Sr.No  ...  Village
16     17  ...        I
33     34  ...        Q
36     37  ...        S

因此,如果我随机选择了村庄I,Q和S,那么我需要这3个村庄的全部数据。

谢谢。

1 个答案:

答案 0 :(得分:1)

对随机的3个村庄使用具有唯一值的numpy.random.choice,然后按Series.isinboolean indexing进行过滤:

vil = np.random.choice(df['Village'].unique(), 3)
df = df[df['Village'].isin(vil)]

仅使用Series.drop_duplicatesSeries.sample的熊猫解决方案:

vil = df['Village'].drop_duplicates().sample(3)
df = df[df['Village'].isin(vil)]

对于功能,请使用:

def random_vil(x):
    vil = np.random.choice(df['Village'].unique(), x)
    return df[df['Village'].isin(vil)]

 df = random_vil(3)