Python 有没有办法在两列之间进行条件减法?
我想在pandas中的两列之间进行条件减法。但我不知道怎么做 我有一个数据框,看起来像这样:Python 有没有办法在两列之间进行条件减法?,python,pandas,Python,Pandas,我想在pandas中的两列之间进行条件减法。但我不知道怎么做 我有一个数据框,看起来像这样: import pandas as pd df = pd.DataFrame({ 'CREATED_DT_DTTM_EPOCH': [ 1483302261, 1483305054, 1483357692, 1483385453, 1483391215 ], 'Audit_Epoch': [0, 148
import pandas as pd
df = pd.DataFrame({
'CREATED_DT_DTTM_EPOCH': [
1483302261,
1483305054,
1483357692,
1483385453,
1483391215
],
'Audit_Epoch': [0, 1483383670, 0, 0, 0]
})
我想得到审计时代和创建日期之间的差异
df['Difference'] = df['Audit_Epoch'] - df['CREATED_DT_DTTM_EPOCH']
但是,我希望它返回与创建的dt相同的值,以防审核历元中的值为0。所以我想检查audit_epoch中的0,如果是0,则返回创建的_dt_epoch值。
因此,情况是这样的:
expected = pd.DataFrame({
'CREATED_DT_DTTM_EPOCH': [
1483302261,
1483305054,
1483357692,
1483385453,
1483391215
],
'Audit_Epoch': [0,1483383670,0,0,0],
'Difference': [
1483302261,
78616,
1483357692,
1483385453,
1483391215
]
})
如果
df['CREATED_dtu DTTM_EPOCH']
总是小于df['Audit_EPOCH']
您可以这样做
df['Difference'] = (df['Audit_Epoch'] - df['CREATED_DT_DTTM_EPOCH']).abs()
df['Difference'] = df['CREATED_DT_DTTM_EPOCH']
df.loc[df['Audit_Epoch'].ne(0), 'Difference'] = df['Audit_Epoch'] - df['CREATED_DT_DTTM_EPOCH']
或者,一般来说,你可以这样做
df['Difference'] = (df['Audit_Epoch'] - df['CREATED_DT_DTTM_EPOCH']).abs()
df['Difference'] = df['CREATED_DT_DTTM_EPOCH']
df.loc[df['Audit_Epoch'].ne(0), 'Difference'] = df['Audit_Epoch'] - df['CREATED_DT_DTTM_EPOCH']
安全方式np.where(df.Audit\u Epoch.eq(0),df.CREATED\u DTTM\u Epoch,df.Audit\u Epoch-df.CREATED\u DTTM\u Epoch)