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

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

pandas groupby 結(jié)果使用布爾數(shù)組的不同組合作為鍵

pandas groupby 結(jié)果使用布爾數(shù)組的不同組合作為鍵

回首憶惘然 2023-06-06 10:37:55
我試圖使用布爾數(shù)組作為鍵來(lái)理解 groupby,這是測(cè)試代碼,a = pd.DataFrame([[True,False,False],[False,True,False]], columns=['A','B','C'])print(a)     A      B      C0   True  False  False1  False   True  False然后我嘗試了布爾數(shù)組的不同組合,這似乎 groupby 結(jié)果都是相同的 rb=a.groupby([False,False])b.apply(pd.DataFrame)       A     B       C0   True    False   False1   False   True    Falsec=a.groupby([True,False])c.apply(pd.DataFrame)      A      B       C0   True    False   False1   False   True    Falsed=a.groupby([False,True])d.apply(pd.DataFrame)     A       B       C0   True    False   False1   False   True    Falsee=a.groupby([False,True])e.apply(pd.DataFrame)     A       B       C0   True    False   False1   False   True    False
查看完整描述

2 回答

?
拉風(fēng)的咖菲貓

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

這是因?yàn)槟鷤鬟f的分組參數(shù)無(wú)法將數(shù)據(jù)幀切成所需的部分。所以它只是復(fù)制整個(gè)數(shù)據(jù)框并將其“壓縮”到您傳遞的分組數(shù)組中。一個(gè)例子 -


a = pd.DataFrame([[True,False,False],[False,True,False]], columns=['A','B','C'])


c = a.groupby([True,False])


print('length of grouper object:',len(c))

print(' ')

print(list(c)[0])

print(' ')

print(list(c)[1])

length of grouper object: 2

 

(False,        A     B      C

1  False  True  False)

 

(True,       A      B      C

0  True  False  False)

請(qǐng)注意,使用分組數(shù)組 [False, True],它只是將整個(gè)數(shù)據(jù)幀 a 與每個(gè)壓縮在一起。如果您改為傳遞它可以在軸 1 中找到的內(nèi)容,它將考慮將該系列中的項(xiàng)目用于對(duì)數(shù)據(jù)集進(jìn)行分組。


另一種看待它的方法是,分組參數(shù)需要是一個(gè)帶有名稱(chēng)的系列,并且該名稱(chēng)應(yīng)該在數(shù)據(jù)框的列中找到。如果你傳遞一個(gè)數(shù)組 [True, False],它基本上被解釋為一個(gè)無(wú)名系列,因此無(wú)法獲得它的鍵來(lái)進(jìn)行拆分。


如果你想了解 groupby 的工作原理,下面是一個(gè)很好的圖像 -

http://img1.sycdn.imooc.com//647e9c18000134e505800454.jpg

拆分發(fā)生在提供的鍵上,并且該鍵需要在索引/列中可引用,否則它無(wú)法拆分并簡(jiǎn)單地返回每個(gè)組的未拆分?jǐn)?shù)據(jù)幀。第一步是石斑魚(yú)所做的,接下來(lái)是應(yīng)用和組合步驟,這些步驟很簡(jiǎn)單。在您上面看到的元組(打印輸出)中,apply 函數(shù)對(duì)t[1]每個(gè)元組的元素進(jìn)行操作,然后將其與t[0]每個(gè)元組的元素組合并垂直連接。



查看完整回答
反對(duì) 回復(fù) 2023-06-06
?
慕森王

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

讓我們分解一下

.groubpy().apply(pd.DataFrame)正如您在所有變體中使用的那樣,從每個(gè)組中獲取行并創(chuàng)建一個(gè)數(shù)據(jù)框,該數(shù)據(jù)框基本上返回self,因此輸出看起來(lái)相同,但 pandas 到達(dá)那里的方式在每種情況下都不同

  1. b=a.groupby([False,False]):兩行屬于同一個(gè)組(group_id False),一起解析一次形成相同的df

  2. c=a.groupby([True,False]):有兩組,每組一行。Apply 獲取每個(gè)組并構(gòu)建兩個(gè)單獨(dú)的 DataFrame(每個(gè)組一個(gè))。然后連接并返回與原始相同的 df

  3. d=a.groupby([False,True]): 與 #2 相同,但現(xiàn)在第一行屬于 group False。如果您聚合或應(yīng)用了不同的函數(shù)(pandas.DataFrame 除外),您會(huì)看到 df 作為True, False索引(默認(rèn)情況下按 groupby 排序)并且第 1 行將顯示為第一行,因?yàn)樗鼘儆诮MTrue


查看完整回答
反對(duì) 回復(fù) 2023-06-06
  • 2 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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