Python中数据帧的有条件采样

问题描述 投票:1回答:1

我有一个姓名,性别,年龄的数据框:

我想通过采样固定数量的样本来创建一个新的Dataframe,以使新DataFrame的平均寿命与原始DataFrame相同。

sample_df = pd.DataFrame({'Var':['A','B','C','D','E'] , 'Ages' : [22,35,43,18,NaN]})

sample_df
Out[410]: 
  Var  Ages
0   A    22
1   B    35
2   C    43
3   D    18
4   E    NaN

我只希望对3行进行采样,以使'E'的年龄等于A,B,C,D的平均值

python dataframe python-3.7
1个回答
0
投票

考虑满足需要后,先使用while True然后使用break进行不确定的迭代,但是根据数据的可变性,这可能需要一些时间来处理。下面建立了一个100行样本的列表,并在达到十个样本后中断。

samples = []

while True:
   sample_df = df.sample(n = 100)

   if sample_df['Age'].mean() == df['Age'].mean():
      samples.append(sample_df)

   if len(samples) == 10:
      break
© www.soinside.com 2019 - 2024. All rights reserved.