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

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

熊貓多索引切片無需排序

熊貓多索引切片無需排序

繁星coding 2022-09-06 17:22:17
給定具有多索引列的數(shù)據(jù)幀import pandas as pdfish = [("Fish", lli) for lli in ["One", "Two"]]dogs = [("Dog", lli) for lli in ["Three", "Four", "Five"]]cats = [("Cat", lli) for lli in ["Three", "Four", "Five"]]df = pd.DataFrame(index=["Blue", "Green", "Red"], columns=pd.MultiIndex.from_tuples(fish+dogs+cats))-df =          Fish       Dog              Cat                    One  Two   Three Four Five  Three Four Five   Blue   NaN  NaN   NaN   NaN  NaN   NaN   NaN  NaN   Green  NaN  NaN   NaN   NaN  NaN   NaN   NaN  NaN   Red    NaN  NaN   NaN   NaN  NaN   NaN   NaN  NaN現(xiàn)在我想同時(shí)設(shè)置兩列的值,例如df.loc[:, ('Dog', ['Four', 'Five'])] = 3.1這導(dǎo)致了一個(gè)KeyError說KeyError: 'MultiIndex Slicing requires the index to be fully lexsorted tuple len (2), lexsort depth (0)'該問題可以通過在設(shè)置值之前對列進(jìn)行排序來“解決”df = df.sort_index(axis=1)現(xiàn)在的問題是我不想對列進(jìn)行排序,因?yàn)樗鼈円呀?jīng)以反映所需輸出的方式排序。有沒有辦法在不先排序的情況下設(shè)置多個(gè)列的值?
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

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

它在上一個(gè)版本的熊貓中工作得很好。

如果無法升級,可以升級pandas,可以通過Index.get_level_valuesIndex.isin創(chuàng)建的掩碼選擇級別,并設(shè)置如下值:

m1 = df.columns.get_level_values(0) == 'Dog'

m2 = df.columns.get_level_values(1).isin(['Four','Five'])


df.loc[:, m1 & m2] = 3.1

print (df)

      Fish        Dog             Cat          

       One  Two Three Four Five Three Four Five

Blue   NaN  NaN   NaN  3.1  3.1   NaN  NaN  NaN

Green  NaN  NaN   NaN  3.1  3.1   NaN  NaN  NaN

Red    NaN  NaN   NaN  3.1  3.1   NaN  NaN  NaN


查看完整回答
反對 回復(fù) 2022-09-06
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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