高级Ifelse(pdf),自定义ifelse -- Pyth

2021-01-25  本文已影响0人  LSim

你有没有遇到过这样的问题,我想根据不同的条件,执行不同的动作。那就看下面的命令:

问题:当一个contact有多个PHN_NBR时,优先选择以1开头的,当没有以1开头的时候,随机选取一条。当以1开头的为多个contact时,选取最新的ord_date.当取出多条时,随机选择一条

@pandas_udf(a.schema, PandasUDFType.GROUPED_MAP)

def udf_sku(pdf):

  CONTACT= pdf.CONTACT.iloc[0]

  df=pdf.loc[pdf["CONTACT_PHONE"].str.startswith('1', na=False)]

  print(df.shape[0])

  if (df.shape[0]==0):

    return pdf.head(1)

  df=df.sort_values(by='ORDER_DATE', ascending=False, na_position='last')

  return df.head(1)

b=a.groupby("CONTACT_ID").apply(udf_sku)

b.count()

上一篇 下一篇

猜你喜欢

热点阅读