2016-09-06 73 views
0

我是新来的大熊猫,并需要使用大熊猫准备的表格,通过模仿下面的代码片段进行确切功能:多列从文件到列表中的大熊猫单列

with open(r'D:/DataScience/ml-100k/u.item') as f: 
    temp='' 
    for line in f: 
     fields = line.rstrip('\n').split('|') 
     movieId = int(fields[0]) 
     name = fields[1] 
     geners = fields[5:25] 
     geners = map(int, geners) 

我的问题是如何添加具有相同的熊猫geters列: geners = fields[5:25]

回答

0

我不清楚你打算完成 - 单个流派列包含字段5-25串联?或为5-25区分开不同的流派专栏?

对于后者,你可以使用[pandas.read_csv](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html)

import pandas as pd 

cols = ['movieId', 'name'] + ['genre_' + str(i) for i in range(5, 25)] 
df = pd.read_csv(r'D:/DataScience/ml-100k/u.item', delimiter='|', names=cols) 

对于前者,你可以串连流派成说,一个空格分隔的列表,使用:

df['genres'] = df[cols[2:]].apply(lambda x: ' '.join(x), axis=1) 
df.drop(cols[2:], axis=1, inplace=True) # drop the separate genre_N columns