gpt4 book ai didi

python - Pandas 将一天中的所有值设置为当天某个时间的数据

转载 作者:行者123 更新时间:2023-12-01 00:13:01 26 4
gpt4 key购买 nike

生成数据

random.seed(42)
date_rng = pd.date_range(start='1/1/2018', end='1/08/2018', freq='H')
df = pd.DataFrame(np.random.randint(0,10,size=(len(date_rng), 3)),
columns=['data1', 'data2', 'data3'],
index= date_rng)
daily_mean_df = pd.DataFrame(np.zeros([len(date_rng), 3]),
columns=['data1', 'data2', 'data3'],
index= date_rng)
mask = np.random.choice([1, 0], df.shape, p=[.35, .65]).astype(bool)
df[mask] = np.nan

df
>>>
data1 data2 data3
2018-01-01 00:00:00 1.0 3.0 NaN
2018-01-01 01:00:00 8.0 5.0 8.0
2018-01-01 02:00:00 5.0 NaN 6.0
2018-01-01 03:00:00 4.0 7.0 4.0
2018-01-01 04:00:00 NaN 8.0 NaN
... ... ... ...
2018-01-07 20:00:00 8.0 7.0 NaN
2018-01-07 21:00:00 5.0 4.0 5.0
2018-01-07 22:00:00 NaN 6.0 NaN
2018-01-07 23:00:00 2.0 4.0 3.0
2018-01-08 00:00:00 NaN NaN NaN

我想每天选择一个特定时间,然后将一天中的所有值设置为该时间的数据。例如,我想选择1:00:00,那么2018-01-01的所有数据将等于2018-01-01 01:00:00,2018-01-02的所有数据将等于2018 -01-02 01:00:00 等,

我知道如何选择当时的数据:

timestamp = "01:00:00"
df[df.index.strftime("%H:%M:%S") == timestamp]

但我不知道如何将当天的数据设置为等于它。

感谢您的阅读。

最佳答案

检查重新索引

s=df[df.index.strftime("%H:%M:%S") == timestamp]
s.index=s.index.date
df[:]=s.reindex(df.index.date).values

关于python - Pandas 将一天中的所有值设置为当天某个时间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59495521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com