如何知道人们需要为我提供的服务付费的时间



我有包含id,性别,价格,支付时间的数据。例如:

import pandas as pd
df1 = pd.DataFrame({'id': ['1','2','3','4','5','6','7','8'],
'gender': ['Male','Female','Male','Female','Male','Female','Male','Male'],
'price': [250, 1000,300, 250, 1000, 500, 450, 500],
'timeToPay':['0 days 01:20:00','1 days 03:24:02','0 days 12:45:55','0 days 05:38:20','0 days 02:44:12','0 days 11:25:38','1 days 01:11:00','0 days 05:22:00']})

付款时间,是客户下单和付款之间的时间差(数据类型timedelta64[ns])。

我如何才能获得最佳的付费时间范围,我的意思是,人们是在0-1小时,4-6小时,还是1 - 2天之间付费。我想知道人们为我提供的服务支付了多长时间。

我试着根据付款时间对数据进行分组,但我认为它没有提供我需要的信息

iuc,

我稍微修改了一下你的代码,使它更容易复制。

import pandas as pd
df1 = pd.DataFrame({'id': ['1','2','3','4','5','6','7','8'],
'gender': ['Male','Female','Male','Female','Male','Female','Male','Male'],
'price': [250, 1000,300, 250, 1000, 500, 450, 500],
'timeToPay':[ '0 days 01:20:00'
,'1 days 03:24:02'
,'0 days 12:45:55'
,'0 days 05:38:20'
,'0 days 02:44:12'
,'0 days 11:25:38'
,'1 days 01:11:00'
,'0 days 05:22:00']})
df1['timeToPay']=df1['timeToPay'].apply(lambda x: pd.Timedelta(x))

现在timeToPaytimedelta,那么你可以用这个代码片段将timeToPay转换为hourday

import math
df1['timeToPay_hour']=df1['timeToPay'].apply(lambda x: math.ceil(x.total_seconds()/(60*60)))
df1['timeToPay_day']=df1['timeToPay'].apply(lambda x: math.ceil(x.total_seconds()/(24*60*60)))
df1

现在,你的df1看起来像这样

<表类>id性别价格timeToPaytimeToPay_hourtimeToPay_daytbody><<tr>01男2500天01:20:002112女性10001天03:24:0228223男3000天12:45:5513134女性2500天05:38:206145男10000天02:44:123156女性5000天11:25:3812167男4501天01:11:0026278男5000天05:22:0061

我会选择直方图。用不同的bin大小试试,这取决于你有多少行。

如果您需要在不同的服务上测量它,您可能需要先将日期与组分开,然后对每个组进行历史记录。

pandas.DataFrame.hist

进一步你可以计算平均值,这又取决于你的数据分布,所以基本上你需要先知道你的数据。

最新更新