Python 如何减去日期并计算空值?

Python 如何减去日期并计算空值?,python,pandas,Python,Pandas,我有一列计算从a到B的持续时间,格式为hh:mm:ss。但是,A和B可能在数据中显示空值 假设A=05:15:00,B=naT,那么减法将返回5:15秒,这在上下文中是误导和错误的,因为B是无穷大!如果两列都不为空,如何指定仅从A中减去B列 这是我的代码: df['A_to_B']=(df.B-df.A).dt.total_seconds() Python不使用null,但它使用一个名为None的类型来表示没有值/类型。那么您可以检查df.B和df.A是否都不是None,可能是这样的: if

我有一列计算从a到B的持续时间,格式为hh:mm:ss。但是,A和B可能在数据中显示空值

假设A=05:15:00,B=naT,那么减法将返回5:15秒,这在上下文中是误导和错误的,因为B是无穷大!如果两列都不为空,如何指定仅从A中减去B列

这是我的代码:

df['A_to_B']=(df.B-df.A).dt.total_seconds()

Python不使用null,但它使用一个名为None的类型来表示没有值/类型。那么您可以检查df.B和df.A是否都不是None,可能是这样的:

if (df.A is not None) and (df.B is not None):
    df['A_to_B'] = (df.B-df.A).dt.total_seconds()
你可以做:

df['A_to_B'] = np.where(df['A'].notna() & df['B'].notna(), 
                        (df['A'] - df['B']).dt.total_seconds(),
                        np.nan)
样本数据

         A        B
0 05:15:00      NaT
1      NaT 00:00:15
2 05:15:00 00:15:00
输出:

         A        B   A_to_B
0 05:15:00      NaT      NaN
1      NaT 00:00:15      NaN
2 05:15:00 00:15:00  18000.0

也许是Python,但熊猫确实有值
NaN