首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MultiIndex为熊猫提供数据

MultiIndex为熊猫提供数据
EN

Stack Overflow用户
提问于 2015-11-11 08:35:42
回答 2查看 63关注 0票数 0

我有这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 new_dict = {'x':[1,2,3,4,5], 'y':[11,22,33,44,55], 'val':[100, 200, 300, 400, 500]}
df = pd.DataFrame.from_dict(new_dict)   
    val  x   y
0  100  1  11
1  200  2  22
2  300  3  33
3  400  4  44
4  500  5  55

例如,我希望能够结合使用xy的值作为val的索引。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df[3][33]
300

实现这一目标的最佳方法是什么?我知道这一定与多个索引有关,但我不确定具体是怎么做的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-11 08:55:27

您可以将两个布尔条件定义为掩码,并与.loc一起使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.loc[(df['x']==3) & (df['y']==33), 'val']

否则,只需设置索引,然后就可以使用这些值索引到df中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
In [233]:
df = df.set_index(['x','y'])
df.loc[3,33]

Out[233]:
val    300
Name: (3, 33), dtype: int64

您可以很容易地将第一个版本包装到func中。

票数 1
EN

Stack Overflow用户

发布于 2015-11-11 08:50:44

您可以定义一个函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new_dict = {'x':[1,2,3,4,5], 'y':[11,22,33,44,55], 'val':[100, 200, 300, 400,   500]}

df = pd.DataFrame.from_dict(new_dict) 

def multindex(x,y):
    return df.set_index(['x','y']).loc[x,y]

multindex(1,11) #will return '100'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33655288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文