我有包含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']})
支付时间是客户订购和支付之间的时间差(数据类型timedelta 64 [ns])。
我怎样才能得到最佳的支付时间范围,我的意思是,人们支付0-1小时或4-6小时或可能1天-2天。我想知道人们支付多长时间我提供的服务。
我尝试根据付款时间对数据进行分组,但我认为它没有给予我需要的信息
2条答案
按热度按时间hgqdbh6s1#
我会选择直方图。尝试不同的bin大小,这取决于你有多少行。
如果你需要在不同的服务上进行测量,你可能需要先与一个小组分开日期,然后再列出每个小组。
pandas.DataFrame.hist
你可以进一步计算平均值,这又取决于你的数据距离,所以基本上你需要先知道你的数据。
kzipqqlq2#
IIUC,
我修改了你的代码使之更容易复制。
现在
timeToPay
是一个timedelta
,那么你可以用这个代码段把timeToPay
转换成hour
和day
。现在,您的
df1
如下所示| | 身份证|性别|价格|待付时间|待付时间_小时|待付时间_天|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 无|1个|男性|二百五十|第0天01:20:00|第二章|1个|
| 1个|第二章|女性|一千|第1天03:24:02|二十八|第二章|
| 第二章|三个|男性|三百|第0天12:45:55|十三|1个|
| 三个|四个|女性|二百五十|第0天05:38:20|六个|1个|
| 四个|五个|男性|一千|0天02:44:12|三个|1个|
| 五个|六个|女性|五百|第0天11:25:38|十二|1个|
| 六个|七|男性|四百五十|第1天01:11:00|二十六|第二章|
| 七|八个|男性|五百|第0天05:22:00|六个|1个|
然后,你可以这样用
timeToPay_hour
来比较性别。希望这能有所帮助。