建立基于日期时间索引的列

时间:2020-06-23 10:14:17

标签: python pandas dataframe

我有一个日期时间索引(一年的小时周期),并且根据小时范围和工作日(例如:星期一,从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,完成后将列复制到现有数据框中。还是应该直接在当前数据帧上工作? 任何从哪里开始的想法?

2 个答案:

答案 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是否可以提供帮助?