将函数参数传递给另一个函数pandas python

时间:2019-12-30 11:00:01

标签: python pandas

数据框df

  cust_id   order_date    
    1       2015-01-16      
    1       2019-12-03      
    2       2014-12-21      
    2       2015-01-10      
    1       2015-01-10
    3       2018-01-18
    3       2017-03-04
    4       2019-11-05
    4       2010-01-01
    3       2019-12-06
    3       2002-01-01
    3       2018-01-01

激活功能将找出过去一个月内进行过交易且至少从某个网站购买过3次的客户。

 def active(month_before_current_month, freq):
         df['Frequency'] = df.groupby('cust_id')['order_date'].nunique()
         df = df.groupby('customer_id')['order_date'].max().loc[lambda x:x>= 
         (datetime.date.today() - 

          datetime.timedelta(month_before_current_month*365/12))].loc[lambda 
            x: 
             x['Frequency']>=3].reset_index().rename(columns= 
            {'order_date':'Most_recent_date'})
         return df

active(1,3)函数的输出将是:(在1个月前购买并且到现在为止至少进行了3笔交易的人)

    cust_id   Most_recent_date Frequency
     1         2019-12-03        3
     3          2019-12-06       5

现在,我想创建另一个函数,该函数使用活动的函数来查看我们应该在多长时间后向这些客户发送传单或营销广告等。

   def active_target(month_before_current_month, freq):
      df=active(month_before_current_month,freq)
      return df['Frequency'].mean()

这很好。但是,我想将参数传递给活动函数本身。

当我这样做时:

       def active_target(**kwargs):
           df=active(month_before_current_month,freq)
           return df['Frequency'].mean()

致电active_target

      active_target(active(1,freq))
          **I am getting error TypeError: active_target() takes 0 positional 
          arguments but 1 was given**

任何人都可以帮助:

0 个答案:

没有答案