使用python将具有条件的新列添加到数据帧

使用python将具有条件的新列添加到数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我创建了一个能量数据帧: df_energy=pd.read_csv('C:/Users/Demonstrator/Downloads/power.csv', delimiter=';', parse_dates=[0], infer_datetime_format = True) 在这种结构中: df_energy.info() 多谢各位 亲切问候您可以从以下位置使用: 样本df: Out[71]: TIMESTAMP P_ACT_KW PERIODE_TA

我创建了一个能量数据帧:

df_energy=pd.read_csv('C:/Users/Demonstrator/Downloads/power.csv', delimiter=';', parse_dates=[0], infer_datetime_format = True)
在这种结构中:

 df_energy.info()
多谢各位

亲切问候

您可以从以下位置使用:
样本df:

Out[71]: 
             TIMESTAMP  P_ACT_KW PERIODE_TARIF  P_SOUSCR       SITE  \
0  2015-07-31 23:00:00      12.0            HC       NaN  ST GEREON   
1  2015-07-31 23:10:00     466.0            HC     425.0  ST GEREON   
2  2015-07-31 23:20:00      18.0            HC     425.0  ST GEREON   
3  2015-07-31 23:30:00      17.0            HC     425.0  ST GEREON   

        TARIF  
0  TURPE_HTA5  
1  TURPE_HTA5  
2  TURPE_HTA5  
3  TURPE_HTA5

df['high_energy']=np.where(df['P_ACT_KW']>400,df['P_ACT_KW'],0)

df['medium_energy']=np.where((df['P_ACT_KW']>200)&(df['P_ACT_KW']<400),df['P_ACT_KW'],0)

df['low_energy']=np.where(df['P_ACT_KW']<200,df['P_ACT_KW'],0)

Out[72]: 
             TIMESTAMP  P_ACT_KW PERIODE_TARIF  P_SOUSCR       SITE  \
0  2015-07-31 23:00:00      12.0            HC       NaN  ST GEREON   
1  2015-07-31 23:10:00     466.0            HC     425.0  ST GEREON   
2  2015-07-31 23:20:00      18.0            HC     425.0  ST GEREON   
3  2015-07-31 23:30:00      17.0            HC     425.0  ST GEREON   

        TARIF  high_energy  medium_energy  low_energy  
0  TURPE_HTA5          0.0            0.0        12.0  
1  TURPE_HTA5        466.0            0.0         0.0  
2  TURPE_HTA5          0.0            0.0        18.0  
3  TURPE_HTA5          0.0            0.0        17.0 
Out[71]:
时间戳P_ACT_KW Period_TARIF P_SOUSCR站点\
0 2015-07-31 23:00:00 12.0 HC南街基隆
1 2015-07-3123:10:00466.0HC 425.0St GEREON
2 2015-07-31 23:20:00 18.0 HC 425.0圣基隆
3 2015-07-31 23:30:00 17.0 HC 425.0圣基隆
塔里夫
0头巾HTA5
1头巾
2头巾HTA5
3头巾
df['high_energy']=np.式中(df['P_ACT_KW']>400,df['P_ACT_KW'],0)
df['medium_energy']=np。其中((df['P_ACT_KW']>200)和(df['P_ACT_KW']

您可以从as:
样本df:

Out[71]: 
             TIMESTAMP  P_ACT_KW PERIODE_TARIF  P_SOUSCR       SITE  \
0  2015-07-31 23:00:00      12.0            HC       NaN  ST GEREON   
1  2015-07-31 23:10:00     466.0            HC     425.0  ST GEREON   
2  2015-07-31 23:20:00      18.0            HC     425.0  ST GEREON   
3  2015-07-31 23:30:00      17.0            HC     425.0  ST GEREON   

        TARIF  
0  TURPE_HTA5  
1  TURPE_HTA5  
2  TURPE_HTA5  
3  TURPE_HTA5

df['high_energy']=np.where(df['P_ACT_KW']>400,df['P_ACT_KW'],0)

df['medium_energy']=np.where((df['P_ACT_KW']>200)&(df['P_ACT_KW']<400),df['P_ACT_KW'],0)

df['low_energy']=np.where(df['P_ACT_KW']<200,df['P_ACT_KW'],0)

Out[72]: 
             TIMESTAMP  P_ACT_KW PERIODE_TARIF  P_SOUSCR       SITE  \
0  2015-07-31 23:00:00      12.0            HC       NaN  ST GEREON   
1  2015-07-31 23:10:00     466.0            HC     425.0  ST GEREON   
2  2015-07-31 23:20:00      18.0            HC     425.0  ST GEREON   
3  2015-07-31 23:30:00      17.0            HC     425.0  ST GEREON   

        TARIF  high_energy  medium_energy  low_energy  
0  TURPE_HTA5          0.0            0.0        12.0  
1  TURPE_HTA5        466.0            0.0         0.0  
2  TURPE_HTA5          0.0            0.0        18.0  
3  TURPE_HTA5          0.0            0.0        17.0 
Out[71]:
时间戳P_ACT_KW Period_TARIF P_SOUSCR站点\
0 2015-07-31 23:00:00 12.0 HC南街基隆
1 2015-07-3123:10:00466.0HC 425.0St GEREON
2 2015-07-31 23:20:00 18.0 HC 425.0圣基隆
3 2015-07-31 23:30:00 17.0 HC 425.0圣基隆
塔里夫
0头巾HTA5
1头巾
2头巾HTA5
3头巾
df['high_energy']=np.式中(df['P_ACT_KW']>400,df['P_ACT_KW'],0)

df['medium_energy']=np.其中((df['P_ACT_KW']>200)和(df['P_ACT_KW']No它们是6:2015-07-31 23:30:00 | 17.0 | HC | 425.0 | ST GEREON | TURPE | HTA5No它们是6:2015-07-31 23:30:00 | HC | 425 0.0(是的,可以使用嵌套的np.where like
np.where(cond,value,np.where(cond1,value,value))
。请回答另一个问题:是否可以对多个条件使用“np.where”,例如如果(x<..)或者如果(是的,可以使用嵌套的np.where like
np.where(cond,value,np.where(cond1,value))
Out[71]: 
             TIMESTAMP  P_ACT_KW PERIODE_TARIF  P_SOUSCR       SITE  \
0  2015-07-31 23:00:00      12.0            HC       NaN  ST GEREON   
1  2015-07-31 23:10:00     466.0            HC     425.0  ST GEREON   
2  2015-07-31 23:20:00      18.0            HC     425.0  ST GEREON   
3  2015-07-31 23:30:00      17.0            HC     425.0  ST GEREON   

        TARIF  
0  TURPE_HTA5  
1  TURPE_HTA5  
2  TURPE_HTA5  
3  TURPE_HTA5

df['high_energy']=np.where(df['P_ACT_KW']>400,df['P_ACT_KW'],0)

df['medium_energy']=np.where((df['P_ACT_KW']>200)&(df['P_ACT_KW']<400),df['P_ACT_KW'],0)

df['low_energy']=np.where(df['P_ACT_KW']<200,df['P_ACT_KW'],0)

Out[72]: 
             TIMESTAMP  P_ACT_KW PERIODE_TARIF  P_SOUSCR       SITE  \
0  2015-07-31 23:00:00      12.0            HC       NaN  ST GEREON   
1  2015-07-31 23:10:00     466.0            HC     425.0  ST GEREON   
2  2015-07-31 23:20:00      18.0            HC     425.0  ST GEREON   
3  2015-07-31 23:30:00      17.0            HC     425.0  ST GEREON   

        TARIF  high_energy  medium_energy  low_energy  
0  TURPE_HTA5          0.0            0.0        12.0  
1  TURPE_HTA5        466.0            0.0         0.0  
2  TURPE_HTA5          0.0            0.0        18.0  
3  TURPE_HTA5          0.0            0.0        17.0