我有一个这样的数据框:
holiday
YEAR MONTH DAY TIME
2012 10 2 00:00:00 0
06:00:00 0
12:00:00 0
18:00:00 0
2012 10 3 00:00:00 1
06:00:00 0
12:00:00 0
18:00:00 0
2012 10 4 00:00:00 0
06:00:00 0
12:00:00 0
18:00:00 0
其中0表示一天不是假期,而1则表示假期。但是,1仅在00:00:00小时出现,我想将当天的所有0替换为1。
holiday
YEAR MONTH DAY TIME
2012 10 2 00:00:00 0
06:00:00 0
12:00:00 0
18:00:00 0
2012 10 3 00:00:00 1
06:00:00 1
12:00:00 1
18:00:00 1
2012 10 4 00:00:00 0
06:00:00 0
12:00:00 0
18:00:00 0
关于如何做到这一点的任何想法?
答案 0 :(得分:2)
让我们这样做
001
答案 1 :(得分:2)
Groupby是一个好主意:
Promise
答案 2 :(得分:1)
reindex
df.max(level=[0, 1, 2]).reindex(df.index)
holiday
YEAR MONTH DAY TIME
2012 10 2 00:00:00 0
06:00:00 0
12:00:00 0
18:00:00 0
3 00:00:00 1
06:00:00 1
12:00:00 1
18:00:00 1
4 00:00:00 0
06:00:00 0
12:00:00 0
18:00:00 0
idx = pd.MultiIndex.from_product([
[2012], [10], [2, 3, 4],
pd.timedelta_range(0, periods=4, freq='6H')
], names=['YEAR', 'MONTH', 'DAY', 'TIME'])
df = pd.DataFrame({'holiday': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]}, idx)