Releases: David-AJ/SecretComp
Releases · David-AJ/SecretComp
groupby()版createPpd
修改PPD
pay_per_day
(PPD)
每家店铺(sid
) 每天(date
) 的 支付数量
计算方法
DataFrame
数据pay
的groupby()
函数可以按照指定属性分组
这里按照['sid','date']
分组,调用.size()
计算各组大小- 有些
sid'指定
date数据为
0,使用
groupby().size()不会返回为
0`的数据
可以理解为商家对应日期未开业
如果按照前几个版本计算保留为0的数据,会使训练的模型过拟合
convert shop_info into np.array
shop信息数字化表示
- 将shop中包含
nan
值的数据依照不同属性置为-1
或'无'
- 将shop中包含字符串数据的属性映射为数字,字典存储
- 将整理后的shop数据转换为
numpy
的array
数据
map()版creatPpd
改进部分
def creatPpd(item):
global ppd,datemap
ppd[datemap[item.date]][item.sid] = ppd[datemap[item.date]][item.sid] + 1
其中item.date
和item.sid
为错误写法,改为
def creatPpd(item):
global ppd,datemap
ppd[datemap[item[2]]][item[1]-1] = ppd[datemap[item[2]]][item[1]-1] + 1
map()版creatPpd
改进部分
- 遍历
pay
的date
列,将0:-9保留(精确到天),使用set()
去重
改为
- 利用
DataFrame
自带的str.slice()
函数,将date
列的0:-9保留
使用list(set(pay.date))
去重后转换为列表,list.sort()
排序
- 利用
dic
字典将字符串日期映射成0-len(date)
的数字下标
改为
- 利用列表解析重写了将字符串日期映射成
0-len(date)
的数字下标
字典改名为datemap
,遍历plist时不需要再对字符串切分0:-9
map()版creatPpd
增加PPD
pay_per_day
(PPD)
每家店铺(sid
) 每天(date
) 的 支付数量
计算方法
- 遍历
pay
的date
列,将0:-9保留(精确到天),使用set()
去重 - 利用
dic
字典将字符串日期映射成0-len(date)
的数字下标 - 创建二维数组
ppd
,横坐标为sid
,纵坐标为dic
的映射的数组下标 - 把
pay
从DataFrame
转换成numpy.array
结构,使用map()
函数遍历计算
pay_per_day.txt可下载