【问题标题】:How to use multiple if in lamda function? [duplicate]如何在 lambda 函数中使用多个 if? [复制]
【发布时间】:2019-06-19 14:25:13
【问题描述】:

在日期框架中,我有 Date 列,现在想从 Date 中提取一个名为“status”的新列,如果 Date> CurrentDate (datetime.now()) 将状态更新为 Expired,如果 Date

Date              Status
2019-06-28      SW Expires 2018-Q2
2020-01-20      SW Expires 2018-Q1
2018-07-18      SW Expired
X               Current
Y               Current
2019-06-20      Current


df['Qtr'] = pd.to_datetime(df['Date']).dt.quarter
df['Qtr']=pd.PeriodIndex(pd.to_datetime(df['Date']), freq='Q')
df['Qtr']=df['Qtr'].astype(str)
df['Qtr']="SW Expires"+' '+df['Qtr']


df['Status'] = df['Date'].apply (lambda x : 'SW Expired' if x > 
CurrentDate else(Midrange_SWProduct['Qtr'] x < CurrentDate else('current' 
Midrange_SWProduct['Qtr'] x == CurrentDate or 'X' or 'Y' else NA )))

【问题讨论】:

    标签: python-3.x pandas numpy datetime lambda


    【解决方案1】:

    最好的方法是两个编写自定义函数并调用应用函数。

    def custom_funct(row):
         do anthing
    df['res']=df.apply(lambda row: custom_funct(row),axis=1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多