将一系列值随机插入到pd.dataframe中



我有一个大型数据帧,我想做的是用我设置的新值覆盖该数据帧的 X 个条目。新条目必须位于随机位置,但它们必须按顺序排列。就像我有一个带有随机数的列,并希望用新值 x 连续覆盖其中的 20 个。

我尝试df.sample(x)然后更新数据帧,但我只得到单个条目。但是我需要连续(连续)的 X 个新条目。

有人有解决方案吗?我对Python很陌生,必须进入我的硕士论文。

澄清:

我的数据帧有 5 列,近 60,000 行,每行一年 10 分钟。

  • 一列是"输出",其中包含这 10 分钟的发电量值。
  • 对于一年中的连续 2 小时(连续 120 分钟,因此连续 12 行),我想将该产量降低到 60%。我希望它在一年中的随机时间发生。
  • 另一列是"状态",其中包含有关产量是否减少的信息。

我试过了:

df_update = df.sample(12)
df_update.status = 'reduced'
df.update(df_update)
df.loc[('status) == 'reduced', ['production']] *=0.6 

这对总时间(12*10 分钟)有好处,但我想要连续 120 分钟而不是分开。

我决定得到一个随机值,并将接下来的 12 个条目索引为 0.6。我想这就是你想要的。

df = pd.DataFrame({'output':np.random.randn(20),'status':[0]*20})
idx = df.sample(1).index.values[0]
df.loc[idx:idx+11,"output"]=0.6
df.loc[idx:idx+11,"status"]=1

最新更新