首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将DataFrame转换为dict

将DataFrame转换为dict
EN

Stack Overflow用户
提问于 2018-10-25 09:11:57
回答 1查看 235关注 0票数 1

我在网上搜索了很长一段时间,但没有结果。

代码语言:javascript
复制
import pandas as pd
import numpy as np
import math

unames = ['user_id', 'gender', 'age', 'occupation', 'zip'] 
users = pd.read_table('ml-1m/users.dat', sep='::', 
header=None,names=unames,engine='python')
rnames = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_table('ml-1m/ratings.dat', sep='::', 
header=None,names=rnames,engine='python')
mnames = ['movie_id', 'title', 'genres']
movies = pd.read_table('ml-1m/movies.dat', sep='::', 
header=None,names=mnames,engine='python')
data=pd.merge(pd.merge(ratings,users),movies)

然后我得到一张这样的桌子:数据的DataFrame

然后,我像这样处理数据

代码语言:javascript
复制
data1=pd.pivot_table(data[(data.user_id==1)],index=['title'],columns='user_id',values='rating')

输出:DataFrame of data1

然后,我尝试将data1转换为dict。

代码语言:javascript
复制
Dict=data1.to_dict()

这个词是这样的:

代码语言:javascript
复制
{1: {'Airplane! (1980)': 4,
 'Aladdin (1992)': 4,
 'Antz (1998)': 4,
 'Apollo 13 (1995)': 5,
 'Awakenings (1990)': 5,
 'Back to the Future (1985)': 5,
 'Bambi (1942)': 4,
 'Beauty and the Beast (1991)': 5,
 'Ben-Hur (1959)': 5,
 'Big (1988)': 4,
 "Bug's Life, A (1998)": 5,
 'Christmas Story, A (1983)': 5,
 'Cinderella (1950)': 5,
 'Close Shave, A (1995)': 3,
 'Dead Poets Society (1989)': 4,
 'Driving Miss Daisy (1989)': 4,
 'Dumbo (1941)': 5,}}

但是,我想将data1转换为如下所示的dict:

代码语言:javascript
复制
{'Airplane! (1980)': 4,
 'Aladdin (1992)': 4,
 'Antz (1998)': 4,
 'Apollo 13 (1995)': 5,
 'Awakenings (1990)': 5,
 'Back to the Future (1985)': 5,
 'Bambi (1942)': 4,
 'Beauty and the Beast (1991)': 5,
 'Ben-Hur (1959)': 5,
 'Big (1988)': 4,
 "Bug's Life, A (1998)": 5,
 'Christmas Story, A (1983)': 5,
 'Cinderella (1950)': 5,
 'Close Shave, A (1995)': 3,
 'Dead Poets Society (1989)': 4,
 'Driving Miss Daisy (1989)': 4,
 'Dumbo (1941)': 5,}

区别在于,第一个版本有一个1作为键,那么如何像第二个版本一样进行转换呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 09:16:19

按列1的名称选择Series并转换为dict,更好的做法是更改变量名称Dict,如注释中提到的@jpp:

代码语言:javascript
复制
d = data1[1].to_dict()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52985594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档