我有一个姓名,性别,年龄的数据框:
我想通过采样固定数量的样本来创建一个新的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的平均值
考虑满足需要后,先使用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