我是熊猫新手,需要使用熊猫准备一张桌子,模仿以下代码片段执行的确切功能:
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]
答案 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