繁体   English   中英

Python pandas 样品无混合指标

[英]Python pandas sample without mixing index

我想为数据帧的索引的每个值独立应用来自 Pandas 的sample function。 这可以通过这样的for循环来完成:

import pandas

df = pandas.DataFrame({'something': [3,4,2,2,6,7], 'n': [1,1,2,2,3,3]})
df.set_index(['n'], inplace=True)

resampled_as_I_want_df = df[0:0]
for i in sorted(set(df.index)):
    resampled_as_I_want_df = resampled_as_I_want_df.append(
        df.loc[i].sample(frac=1, replace=True),
    )

print(resampled_as_I_want_df)

让我以人性化的方式解释这一点。 df数据框如下所示:

   something
n           
1          3
1          4
2          2
2          2
3          6
3          7

现在我们看到有三个“索引组”,它们的值分别为123 我想要做的是应用sample function 的方式,新数据帧将具有相同的索引,没有随机抽样,并且在每个组内执行抽样,就好像它们是独立的数据帧一样。

有没有办法避免for循环? 对于大型数据帧,这是一个瓶颈。

使用df.groupby(level=0).sample(frac=1, replace=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM