【问题标题】:Conditional if statement function best method?条件if语句函数的最佳方法?
【发布时间】:2019-01-02 08:25:18
【问题描述】:

我正在考虑在这种情况下最好的方法是什么。 我正在尝试查看 4 列都是时间戳。

Col_A        Col_B        Col_A1       Col_B1
Timestamp    Timestamp    Timestamp    Timestamp

我正在寻找可以在函数中创建 if 语句的最佳方法,该函数查找 Col_ACol_B 之间的较早时间,然后以 col 较早的时间为准,我想找到较早的值在Col_A1Col_B1 内。

例如,如果Col_A 中的时间戳早于Col_B 中的时间戳,我想查看Col_A1 的时间戳是否早于Col_B1,那么我想要一个显示为 1 的新列。

基本上我想看看前两列中较早的时间戳对应最后两列中的时间戳是更早还是更晚。

所以类似于 if A B_1 then 2. 所以无论前两列中较早的时间戳是什么 - 我想看看那个 col 时间戳是否更早在后两列。

【问题讨论】:

    标签: python pandas function datetime if-statement


    【解决方案1】:

    我相信您需要numpy.select& 的链接条件用于按位和:

    m1 = df['Col_A'] < df['Col_B']
    m2 = df['Col_A1'] < df['Col_B1']
    m3 = df['Col_A1'] > df['Col_B1']
    
    df['new'] = np.select([m1 & m2, m1 & m3], [1,2], default=0)
    

    如果日期不相等:

    m1 = df['Col_A'] < df['Col_B']
    m2 = df['Col_A1'] < df['Col_B1']
    
    #~m2 is like df['Col_A1'] >= df['Col_B1']
    df['new'] = np.select([m1 & m2, m1 & ~m2], [1,2], default=0)
    

    【讨论】:

    • 谢谢!如果日期不相等是什么意思?
    • 然后使用!= 而不是&gt; :)
    猜你喜欢
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    相关资源
    最近更新 更多