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

时间:2019-04-09 11:33:51

标签: python pandas dataframe

我有一个大数据框,我想做的是用我设置的新值覆盖该数据框的X项。新条目必须位于随机位置,但必须井井有条。就像我有一个包含随机数的列,并想用新值x覆盖其中的20个列一样。

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

有人解决了吗?我是python的新手,必须要攻读硕士学位论文。

我会尝试指定:

我的数据框有5列,几乎有60.000行,每年每行10分钟。一栏是“输出”,其中包含该10分钟的发电量。我想在一年中的后两个小时将产量降低到60%。我希望它在一年中的任意时间发生。另一栏是“状态”,其中包含有关产量是否减少的信息。

我尝试过:

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

这可以解决总tf时间(12 * 10分钟)的问题:但是我要连续120分钟,而不要分开。

希望您能理解

1 个答案:

答案 0 :(得分:1)

我决定获取一个随机值,然后将接下来的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