我有一个数据框,我想使用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'])
答案 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