首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中从MultiIndexed熊猫数据帧创建n数组树

如何在python中从MultiIndexed熊猫数据帧创建n数组树
EN

Stack Overflow用户
提问于 2018-07-29 14:01:50
回答 1查看 486关注 0票数 0

我有一个pandas数据帧。我在多个列上调用了set_index方法。

你能帮我构建同样的数据框架吗?

代码语言:javascript
复制
raw_data = {'first_name': ['Jason', 'Molly'], 
    'last_name': ['Miller', 'Jacobson'], 
    'age': [42, 52, ] 
    'preTestScore': [4, 24],
    'postTestScore': [25, 94]}

df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'preTestScore', 'postTestScore'])

df1 = df.set_index(['first_name','last_name','age'])

那么将有四列。第一个是索引列,其他是pretestScore和postTestScore

代码语言:javascript
复制
first_name-second_name-age     preTestScore            postTestScore

Jason
        Miller
                  42
                                 4                           25
 Molly
        Jacob
                  52              
                                 24                          94   
EN

回答 1

Stack Overflow用户

发布于 2018-07-29 19:23:29

据我所知,你希望索引是这些列的组合,但又希望它出现在一列中,对于这一列,没有我搜索过的pandas函数。自定义构建方式如下所示:

代码语言:javascript
复制
import pandas as pd
raw_data = {'first_name': ['Jason', 'Molly'], 
    'last_name': ['Miller', 'Jacobson'], 
    'age': [42, 52, ],
    'preTestScore': [4, 24],
    'postTestScore': [25, 94]}

df = pd.DataFrame.from_dict(raw_data)
df['first_name-last_name-age'] = df.apply(lambda row: row['first_name']+' '+ row['last_name']+' '+str(row['age']), axis=1)
df = df.set_index(['first_name-last_name-age'])
df = df.drop('first_name', axis=1)
df = df.drop('last_name', axis=1)
df = df.drop('age', axis=1)
df = df.reset_index()
print (df)

以上输出结果与您的预期一致:

代码语言:javascript
复制
  first_name-last_name-age  postTestScore  preTestScore
0          Jason Miller 42             25             4
1        Molly Jacobson 52             94            24

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51577679

复制
相关文章

相似问题

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