Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法在两列之间进行条件减法?_Python_Pandas - Fatal编程技术网

Python 有没有办法在两列之间进行条件减法?

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

我想在pandas中的两列之间进行条件减法。但我不知道怎么做

我有一个数据框,看起来像这样:

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)