Python 根据多索引的一部分选择熊猫系列中的条目
我有一个像这样的熊猫系列Python 根据多索引的一部分选择熊猫系列中的条目,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个像这样的熊猫系列 import itertools import pandas as pd combos = list(itertools.permutations(['BB', 'BW', 'WW'], 2)) combo_values = pd.Series([2,4,0,2,0,0], combos) (BB, BW) 2 (BB, WW) 4 (BW, BB) 0 (BW, WW) 2 (WW, BB) 0 (WW, BW) 0 dty
import itertools
import pandas as pd
combos = list(itertools.permutations(['BB', 'BW', 'WW'], 2))
combo_values = pd.Series([2,4,0,2,0,0], combos)
(BB, BW) 2
(BB, WW) 4
(BW, BB) 0
(BW, WW) 2
(WW, BB) 0
(WW, BW) 0
dtype: int64
combo_values['BB', 'BW']
因此,combo\u值
如下所示
import itertools
import pandas as pd
combos = list(itertools.permutations(['BB', 'BW', 'WW'], 2))
combo_values = pd.Series([2,4,0,2,0,0], combos)
(BB, BW) 2
(BB, WW) 4
(BW, BB) 0
(BW, WW) 2
(WW, BB) 0
(WW, BW) 0
dtype: int64
combo_values['BB', 'BW']
我知道你可以像这样提取一个条目
import itertools
import pandas as pd
combos = list(itertools.permutations(['BB', 'BW', 'WW'], 2))
combo_values = pd.Series([2,4,0,2,0,0], combos)
(BB, BW) 2
(BB, WW) 4
(BW, BB) 0
(BW, WW) 2
(WW, BB) 0
(WW, BW) 0
dtype: int64
combo_values['BB', 'BW']
所以我想提取前两个条目,我想这样做:
combo_values['BB',]
#or this
combo_values['BB',:]
BB BW 0.25
WW 0.50
BW BB 0.00
WW 0.25
WW BB 0.00
BW 0.00
dtype: float64
combo_values['BB',]
两者都不起作用,第一个选项会产生以下错误(我正在切掉痕迹)
我知道这种替代解决方案有效:
combo_df = pd.DataFrame(combos, columns = ['A', 'B'])
combo_df['combo_values'] = [2,4,0,2,0,0]
combo_df.loc[combo_df['A'] == 'BB', :]
但是有没有办法用我的combo\u值
系列做到这一点
谢谢正确的方法是使用多索引,而不是元组索引:
import itertools
import pandas as pd
combos = list(itertools.permutations(['BB', 'BW', 'WW'], 2))
multi = pd.MultiIndex.from_tuples(combos)
combo_values = pd.Series([2,4,0,2,0,0], multi)
组合_值
现在看起来如下所示:
combo_values['BB',]
#or this
combo_values['BB',:]
BB BW 0.25
WW 0.50
BW BB 0.00
WW 0.25
WW BB 0.00
BW 0.00
dtype: float64
combo_values['BB',]
它可以像这样过滤:
combo_values['BB',]
#or this
combo_values['BB',:]
BB BW 0.25
WW 0.50
BW BB 0.00
WW 0.25
WW BB 0.00
BW 0.00
dtype: float64
combo_values['BB',]
屈服
BW 0.25
WW 0.50
可以考虑用<代码>多索引< /代码>替换COMPOBY值的索引吗?如果可能的话,那个么你们尝试过的切片方式应该可以很好地工作。这非常有效,我只是不熟悉pd.MultiIndex。谢谢