第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按根據(jù)多索引級別而變化的值對列進(jìn)行過濾

按根據(jù)多索引級別而變化的值對列進(jìn)行過濾

瀟湘沐 2021-08-17 10:46:36
復(fù)雜的標(biāo)題,但很簡單的問題。我有一個帶有 MultiIndex 的 DataFrame:我想要上面框架的行,但'Filter Column'必須大于或等于filter_value下面系列中的值。filter_value = Series([1, 3], ['red', 'blue'])這個玩具問題的正確解決方案是相同的數(shù)據(jù)幀,但只剩下(red, 2),(blue, 2)和(blue, 3)行。要設(shè)置上述框架:arrays = [['red', 'red', 'blue', 'blue', 'blue'], [1, 2, 1, 2, 3]]idx = MultiIndex.from_arrays(arrays, names=['Color', 'Count'])values = Series(2, idx, name='Value')ratios = Series(range(5), idx, name='Filter Column')df = concat([values, ratios], axis='columns')
查看完整描述

2 回答

?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊

看起來你需要get_level_values+ map,然后使用值比較得到 df 的布爾過濾器


df[df['Filter Column'].values>=df.index.get_level_values(0).map(filter_value)]

Out[108]: 

             Value  Filter Column

Color Count                      

red   2          2              1

blue  2          2              3

      3          2              4


查看完整回答
反對 回復(fù) 2021-08-17
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個贊

你可以試試這個:


pd.concat(df.align(filter_value.rename('filter'), level=0, axis=0), axis=1)\

  .loc[lambda x: x['Filter Column']>=x['filter']]

輸出:


             Value  Filter Column  filter

Color Count                              

red   2          2              1       1

blue  2          2              3       3

      3          2              4       3


查看完整回答
反對 回復(fù) 2021-08-17
  • 2 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號