我有一个熊猫数据框df
显示如下:
Month Day mnthShape
1 1 1.016754224
1 1 1.099451003
1 1 0.963911929
1 2 1.016754224
1 1 1.099451003
1 2 0.963911929
1 3 1.016754224
1 3 1.099451003
1 3 1.783775568
我想从以下位置获得以下信息df
:
Month Day mnthShape
1 1 1.016754224
1 2 1.016754224
1 3 1.099451003
哪里的mnthShape
值是从索引中随机选择的。即,如果查询是 df.loc[(1, 1)],它应该查找 (1, 1) 的所有值,并从中随机选择一个要在上面显示的值。
Use groupby
with apply
每组随机选择一行。
np.random.seed(0)
df.groupby(['Month', 'Day'])['mnthShape'].apply(np.random.choice).reset_index()
Month Day mnthShape
0 1 1 1.016754
1 1 2 0.963912
2 1 3 1.099451
如果您想知道采样的行来自哪个索引,请使用pd.Series.sample
with n=1
:
np.random.seed(0)
(df.groupby(['Month', 'Day'])['mnthShape']
.apply(pd.Series.sample, n=1)
.reset_index(level=[0, 1]))
Month Day mnthShape
2 1 1 0.963912
3 1 2 1.016754
6 1 3 1.016754
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)