一般数据挖掘类比赛会只提供.data文件,本文就是讲解自己在比赛时读取data文件的过程。
取.data文件的时候,只能通过 with open(' ','r') as f: 进行读取,最后再保存为csv文件。该过程中通常是
1、先做a=strip().split('')处理,得到列表,但此时的a[i](i=1,2,...)是str属性, 如‘uid 130’,‘aid 520’,因为split的应用描述就是对字符串做切割
2、将上面得到的存入字典,dict[a[0]] = ' '.join(a[1:])这一步就是构建字典(=)。
3、得到了字典,可以直接在一个列表里面append其,eg:list.append(dict),此时得到的是[{' ':' ',' ':' ',...}],比如在下面例子中第一次append之后变成[{’uid‘:263}],第二次之后变成[{'uid':350,'age':4}]
4、最后就是将list转化为DataFrame就可以了这里可以看到DataFrame是自动将字典中的key值作为columns
如果不做字典,直接strip()split('')之后就append会变成这样
当然如果一个key只有一个value的字典如果直接转化成数据框会报错
1 pd.DataFrame(my_dict)
2 ValueError: If using all scalar values, you must pass an index
应该做如下转换
1 pd.DataFrame.from_dict(my_dict,orient='index').T