【发布时间】:2020-05-26 06:56:23
【问题描述】:
我正在使用 python 进行自动化任务。我想要一个“结果”列,如果“电池”列包含“放电”并且前一行包含“无”,则它应该包含“1”,否则它应该包含“0”
默认情况下第一行应包含 0。
excel公式为
=IF(AND(AD2="None",AD3="Discharge"),1,0)
【问题讨论】:
标签: python pandas dataframe user-defined-functions
我正在使用 python 进行自动化任务。我想要一个“结果”列,如果“电池”列包含“放电”并且前一行包含“无”,则它应该包含“1”,否则它应该包含“0”
默认情况下第一行应包含 0。
excel公式为
=IF(AND(AD2="None",AD3="Discharge"),1,0)
【问题讨论】:
标签: python pandas dataframe user-defined-functions
IIUC你可以使用np.where()设置条件,然后强制第一行为0:
import numpy as np
df['result'] = np.where(
(df.Battery=='Discharge') & (df.Battery.shift()=='None'),
1,
0
)
df['result'].iloc[0] = 0
【讨论】: