【发布时间】:2015-11-11 16:35:42
【问题描述】:
我有这个代码:
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
我希望能够结合使用x 和y 的值作为val 的索引,
例如
df[3][33]
300
实现这一目标的最佳方法是什么?我知道这一定与多索引有关,但我不确定具体如何。
【问题讨论】:
-
对不起,你要
df.loc[(df['x']==3) & (df['y']==33), 'val']? -
这确实会给出正确的结果,但我想知道是否有更优雅、语法更简洁的方法。
-
好吧,你这里没有多索引,除了你要找的是行值匹配,你在这里没有使用任何索引
-
谢谢。但是构造一个多索引,然后使用它更实用吗?
-
视情况而定,但如果您确实设置了索引,那么您可以使用
df.set_index(['x','y']).loc[3,33],这在语法上可能对您来说更容易
标签: python pandas dataframe multi-index