pandas新专栏if声明

时间:2018-03-02 14:24:34

标签: python pandas if-statement

我有一个数据框,我想使用if语句添加一个列值。我一直在尝试lambda功能,但没有运气。我想添加一个列,说明阈值<订购,然后将新列设置为阈值,否则将列设置为订单。

df_new

  Order       Threshold  
 20,000        100,000
 500,000       50,000
 100,000       75,000

我试过了:

 df_new['New Column'].apply(lambda x: df_new['Threshold'] if < df_new['Order'] else df_new['Order Quantity'])

1 个答案:

答案 0 :(得分:3)

有时使用避免if / else构造的算法会很有帮助。以下解决方案可能更有效,而且还增加了一些直观的逻辑。

import pandas as pd, numpy as np

df = pd.DataFrame({'Order': [20000, 500000, 100000],
                   'Threshold': [100000, 50000, 75000]})

df['New'] = np.minimum(df['Threshold'], df['Order'])

#     Order  Threshold    New
# 0   20000     100000  20000
# 1  500000      50000  50000
# 2  100000      75000  75000