【发布时间】:2017-10-25 16:45:06
【问题描述】:
考虑以下示例:
我有一个 Movielens 的数据集-
u.item.csv
ID|MOVIE NAME (YEAR)|REL.DATE|NULL|IMDB LINK|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|
1|Toy Story (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Toy%20Story%20(1995)|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0
2|GoldenEye (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?GoldenEye%20(1995)|0|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0
3|Four Rooms (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Four%20Rooms%20(1995)|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0
这里使用的分隔符是Pipe,还是可以管理的。
training_data.csv
,user_id,movie_id,rating,unix_timestamp
0,1,1,5,874965758
1,1,2,3,876893171
2,1,3,4,878542960
由于我需要在“Training_data”中显示电影名称,而不是“movie id”,我需要将 u.item.csv 的每个 ID 与 movie_id 与 training_data.csv 进行匹配 然后替换它。
我正在使用 Python Pandas,训练数据从 Sframe 转换为 Dataframe 再转换为 CSV。这样我就可以获得所需的更改,但尚未成功。我当然可以使用一些循环结构,但匹配和替换是我面临的真正挑战。
附:我知道训练数据将按用户顺序排列,并且如果替换会产生准确的输出,但我需要了解这一点,这样当我推荐电影时,我需要显示电影名称而不是 ID。
我已经试过了
- THIS (pandas-python-replace-multiple-values-in-multiple-columns) - 但是当我在数据集中有 100K 值时会花费很多时间
- THIS (pandas-replace-multiple-values-one-column) - 未解释匹配值
- THIS (pandas-replacing-column-values) - 手动输入已完成
【问题讨论】:
标签: python python-2.7 csv pandas replace