我有一个数据框,我想使用if语句为其添加列值。我一直在尝试lambda函数,但是还没有碰运气。我想添加一列,说如果threshold

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'])

最佳答案

有时使用避免使用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

关于python - Pandas 新列if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49071084/

10-09 07:28