将DataFrame转换为字典时丢失记录

时间:2018-05-05 17:19:47

标签: python-3.x pandas

我将CSV文件解析为Dataframe。 10,000条记录进入,没有问题。 两列一个' ID',一个'评论'。

我尝试将DF转换为字典,其中键=' ID'和值='评论'。

由于某种原因,新词典只包含680条记录。

#read csv data file
data = pd.read_csv("Movie_reviews.csv",
                   delimiter='\t',
                   header=None,names=['ID','Reviews'])
reviews = data.set_index('ID').to_dict().get('Reviews')
len(reviews)

输出为680

如果我没有追加' .get(' Reviews')'一切都是一个伟大的记录。

Dataframe'数据'看起来像这样

               ID                                            Reviews
1      076780192X  it always amazes me how people can rate the DV...
2      0767821599  This movie is okay, but, its not worth what th...
3      0782008380  If you love the Highlander 1 movie and the ser...
4      0767726227  This is a great classic collection, if you lik...
5      0780621832  This is the second of John Ford and John Wayne...
6      0310263662  I am an evangelical Christian who believes in ...
7      0767809270  Federal law, in one of its numerous unfunded m...

2 个答案:

答案 0 :(得分:0)

我认为你可以做到:

方法1:

reviews = data.set_index('ID')['Reviews'].to_dict()

方法2:我们在此处将评论转换为每个ID的列表,以便我们不会丢失任何信息。

reviews = data.groupby('ID')['Reviews'].apply(list).to_dict()

答案 1 :(得分:0)

如果它可以帮助其他人。

电影评论的ID并非都是独一无二的。 .nu​​nique()函数显示了@YOLO的建议。

仅将值(评论)分配给字典会自动添加@JackHoman建议解决我的问题的唯一键。