更改和更新 pandas 数据框中的值

Change and update values in a pandas dataframe

我正在处理一个更大的数据框,我需要 select 一个时间间隔,修改值并在此数据框中更新它们:

df = pd.DataFrame({'datetime': ['2020-09-01T00:15:00.000000000', '2020-09-01T00:30:00.000000000',
       '2020-09-01T00:45:00.000000000', ...,
       '2020-09-30T23:30:00.000000000', '2020-09-30T23:45:00.000000000',
       '2020-10-01T00:00:00.000000000'],
                          'p': [407.4 , 410.76, 411.6 , ..., 478.8 , 456.12, 451.08],
                          'q': [47.88, 52.08, 53.76, ..., 77.28, 68.04, 63.84]})

为此,我 select 从函数 pd.between_time 中编辑了所需的间隔,修改了值并将它们存储在较小的数据框中。:

df1 = (df.between_time(start_time='07:15:00',end_time='17:00:00')).reset_index()

现在我想将这些值“粘贴”到我更大的数据框中。我怎么能那样做?我测试了函数 pd.uptadepd.mergepd.join,但我一定是错误地应用了它们,因为有信息丢失:

df.update(df1)

也许您可以使用 np.where 来更新值? 例如,我创建了新列,但您可以覆盖旧列:

df.datetime = pd.to_datetime(df.datetime)
df.set_index('datetime', inplace = True)


df['new_p'] = np.where(df.index.isin(df.between_time(start_time='00:15:00',end_time='00:30:00').index), 99999, df['p'])

输出: