慕標(biāo)琳琳
2021-12-09 10:35:30
我有一個(gè)像這樣構(gòu)造的 Pandas 系列import itertoolsimport pandas as pdcombos = list(itertools.permutations(['BB', 'BW', 'WW'], 2))combo_values = pd.Series([2,4,0,2,0,0], combos)所以combo_values看起來(lái)像這樣(BB, BW) 2(BB, WW) 4(BW, BB) 0(BW, WW) 2(WW, BB) 0(WW, BW) 0dtype: int64我知道你可以像這樣提取一個(gè)條目combo_values['BB', 'BW']所以我想提取前兩個(gè)條目我想做這樣的事情:combo_values['BB',]#or thiscombo_values['BB',:]兩者都不起作用,第一個(gè)選項(xiàng)會(huì)產(chǎn)生以下錯(cuò)誤(我正在刪除痕跡)TypeError: 'tuple' object cannot be interpreted as an integerKeyError: ('BB',)我知道這個(gè)替代解決方案有效: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', :]但是有沒(méi)有辦法用我的combo_values系列來(lái)做到這一點(diǎn)?
1 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
正確的方法是使用多索引,而不是元組索引:
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 現(xiàn)在看起來(lái)像這樣:
BB BW 0.25
WW 0.50
BW BB 0.00
WW 0.25
WW BB 0.00
BW 0.00
dtype: float64
它可以像這樣過(guò)濾:
combo_values['BB',]
屈服
BW 0.25
WW 0.50
添加回答
舉報(bào)
0/150
提交
取消