Bạn có thể sử dụng np.where . Nếu condlà một mảng boolean và Avà Blà các mảng, thì
C = np.where(cond, A, B)
định nghĩa C bằng với Ađâu condlà Đúng và Bđâu condlà Sai.
import numpy as np
import pandas as pd
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
df['que'] = np.where((df['one'] >= df['two']) & (df['one'] <= df['three'])
                     , df['one'], np.nan)
hoa lợi
  one  two three  que
0  10  1.2   4.2   10
1  15   70  0.03  NaN
2   8    5     0  NaN
Nếu bạn có nhiều hơn một điều kiện, thì bạn có thể sử dụng np.select để thay thế. Ví dụ: nếu bạn muốn df['que']bằng df['two']khi nào df['one'] < df['two'], thì
conditions = [
    (df['one'] >= df['two']) & (df['one'] <= df['three']), 
    df['one'] < df['two']]
choices = [df['one'], df['two']]
df['que'] = np.select(conditions, choices, default=np.nan)
hoa lợi
  one  two three  que
0  10  1.2   4.2   10
1  15   70  0.03   70
2   8    5     0  NaN
Nếu chúng ta có thể giả định rằng df['one'] >= df['two']khi nào df['one'] < df['two']là Sai, thì các điều kiện và lựa chọn có thể được đơn giản hóa thành
conditions = [
    df['one'] < df['two'],
    df['one'] <= df['three']]
choices = [df['two'], df['one']]
(Giả định có thể không đúng nếu df['one']hoặc df['two']chứa NaN.)
Lưu ý rằng 
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
định nghĩa một DataFrame với các giá trị chuỗi. Vì chúng trông bằng số, bạn có thể tốt hơn nên chuyển đổi các chuỗi đó thành float:
df2 = df.astype(float)
Tuy nhiên, điều này làm thay đổi kết quả, vì các chuỗi so sánh từng ký tự, trong khi số thực được so sánh bằng số.
In [61]: '10' <= '4.2'
Out[61]: True
In [62]: 10 <= 4.2
Out[62]: False
     
              
ifcâu lệnh làFalse?