我知道如何从熊猫数据框中随机采样几行。
使用示例命令
df_sample = df.sample(n=10)
不过,我需要的是下面数据框中的随机列(即Village)。
例如:我想随机选择3个村庄的全部数据,即A,B和C村。将随机选择A,B和C村庄,并为我们提供这3个村庄的全部数据的输出。
同样,
这是我的代码
>>> 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个村庄的全部数据。
谢谢。
答案 0 :(得分:1)
对随机的3个村庄使用具有唯一值的numpy.random.choice
,然后按Series.isin
和boolean indexing
进行过滤:
vil = np.random.choice(df['Village'].unique(), 3)
df = df[df['Village'].isin(vil)]
仅使用Series.drop_duplicates
和Series.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)