根据基于时间值的if语句创建新列

克里斯90

我正在尝试创建一个给出两个其他列的两个时间戳的方差或相减的列。

def time_delta(df):
    if df['a_time'] > df['b_time']:
        df = (pd.to_datetime(df.a_time) - pd.to_datetime(df.b_time)) / np.timedelta64(1, 'm')
    else:
        df = (pd.to_datetime(df.b_time) - pd.to_datetime(df.a_time)) / np.timedelta64(1, 'm')
    return df

df['C'] = df.apply(time_delta, axis=1)

当我运行代码的apply部分时,单元格仅以*开头运行,是否缺少某些内容?

非常感谢

Hainan Zhao

不要将结果分配给“ df”,而是将其更改为其他变量。

def time_delta(df):
    if df['a_time'] > df['b_time']:
        res = (pd.to_datetime(df.a_time) - pd.to_datetime(df.b_time)) / np.timedelta64(1, 'm')
    else:
        res = (pd.to_datetime(df.b_time) - pd.to_datetime(df.a_time)) / np.timedelta64(1, 'm')
    return res

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章