我有一个日期时间索引(一年的小时周期),并且根据小时范围和工作日(例如:星期一,从00:00:00到02:00:00),我只想添加一列(Tarif)具有特定值(恒定)。
现在我有这个:
vazio = 0.065725 cheia = 0.070622
Potência Ativa ...
2019-01-01 00:00:00 31.0 ...
2019-01-01 01:00:00 26.0 ...
2019-01-01 02:00:00 21.0 ...
2019-01-01 03:00:00 21.0 ...
2019-01-01 04:00:00 21.0 ...
我想变成这样:
Potência Ativa ... Tarif
2019-01-01 00:00:00 31.0 ... 0.065725
2019-01-01 01:00:00 26.0 ... 0.065725
2019-01-01 02:00:00 21.0 ... 0.070622
2019-01-01 03:00:00 21.0 ... 0.070622
2019-01-01 04:00:00 21.0 ... 0.070622
我应该创建一个新的Datetimeindex,完成后将列复制到现有数据框中。还是应该直接在当前数据帧上工作? 任何从哪里开始的想法?
答案 0 :(得分:0)
您可以直接使用现有数据框,并使用numpy select
添加新列:
例如,星期一0:00到2:00 0.065725,否则为0.070622:
df['Tarif'] = np.select([(df.index.hour<=2) & (df.index.weekday==0)], [0.065725], 0.070622)
您可以将更多条件添加到select
的第一个列表中,并将相应的值添加到第二个列表中。不要忘记&
和|
优先于>
,==
等的寄生条件。
答案 1 :(得分:0)
我也想将此条件限制在这两个时间段之间:
df['Tarif'] = np.select([(df.index.hour<=2) & (df.index.weekday==0)], [0.065725], 0.070622)
冬季:01-01-2019至31-03-2019和01-11-2019至31-12-2019
夏季:01/01/2019至31-10-2019
我在想.grouby是否可以提供帮助?