从文件中的多个列到pandas中的单个列列

时间:2016-09-06 13:03:00

标签: python pandas data-science

我是熊猫新手,需要使用熊猫准备一张桌子,模仿以下代码片段执行的确切功能:

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)

我的问题是如何在具有相同的pandas中添加geners列: geners = fields[5:25]

1 个答案:

答案 0 :(得分: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