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

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

如何通過密鑰按數(shù)據(jù)分組訪問熊貓

如何通過密鑰按數(shù)據(jù)分組訪問熊貓

Qyouu 2019-12-10 10:46:58
如何通過密鑰訪問groupby對象中的相應groupby數(shù)據(jù)幀?通過以下groupby:rand = np.random.RandomState(1)df = pd.DataFrame({'A': ['foo', 'bar'] * 3,                   'B': rand.randn(6),                   'C': rand.randint(0, 20, 6)})gb = df.groupby(['A'])我可以遍歷它來獲取密鑰和組:In [11]: for k, gp in gb:             print 'key=' + str(k)             print gpkey=bar     A         B   C1  bar -0.611756  183  bar -1.072969  105  bar -2.301539  18key=foo     A         B   C0  foo  1.624345   52  foo -0.528172  114  foo  0.865408  14我希望能夠通過其鍵訪問組:In [12]: gb['foo']Out[12]:       A         B   C0  foo  1.624345   52  foo -0.528172  114  foo  0.865408  14但是,當我嘗試這樣做時,gb[('foo',)]我得到了這個奇怪的pandas.core.groupby.DataFrameGroupBy對象,似乎沒有任何與我想要的DataFrame相對應的方法。我能想到的最好的是:In [13]: def gb_df_key(gb, key, orig_df):             ix = gb.indices[key]             return orig_df.ix[ix]         gb_df_key(gb, 'foo', df)Out[13]:     A         B   C0  foo  1.624345   52  foo -0.528172  114  foo  0.865408  14  但是考慮到這些事情上熊貓通常很漂亮,這有點令人討厭。這樣做的內(nèi)置方式是什么?
查看完整描述

3 回答

?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

您可以使用以下get_group方法:


In [21]: gb.get_group('foo')

Out[21]: 

     A         B   C

0  foo  1.624345   5

2  foo -0.528172  11

4  foo  0.865408  14

注意:這不需要為每個組創(chuàng)建一個中間字典/每個子數(shù)據(jù)幀的副本,因此,與使用創(chuàng)建天真的字典相比,它的內(nèi)存效率更高dict(iter(gb))。這是因為它使用了groupby對象中已經(jīng)可用的數(shù)據(jù)結(jié)構(gòu)。


您可以使用groupby切片選擇不同的列:


In [22]: gb[["A", "B"]].get_group("foo")

Out[22]:

     A         B

0  foo  1.624345

2  foo -0.528172

4  foo  0.865408


In [23]: gb["C"].get_group("foo")

Out[23]:

0     5

2    11

4    14

Name: C, dtype: int64


查看完整回答
反對 回復 2019-12-10
?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

Python for Data Analysis中的Wes McKinney(熊貓的作者)提供了以下方法:


groups = dict(list(gb))

它返回一個字典,其鍵是您的組標簽,其值是DataFrames,即


groups['foo']

將產(chǎn)生您想要的東西:


     A         B   C

0  foo  1.624345   5

2  foo -0.528172  11

4  foo  0.865408  14


查看完整回答
反對 回復 2019-12-10
  • 3 回答
  • 0 關(guān)注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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