条件if语句功能最好的方法?

时间:2019-01-02 08:25:19

标签: python pandas function datetime if-statement

我正在考虑在这种情况下最好的方法。 我试图查看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。

基本上,我试图查看前两列中对应于后两列中时间戳的更早时间戳是更早还是较晚。

例如,如果A B_1然后2。那么无论前两列中的时间戳是什么,我都想看看该col时间戳是否更早在后两列中。

1 个答案:

答案 0 :(得分: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)