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

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

對(duì)數(shù)據(jù)框中的列進(jìn)行分組,并使用分組數(shù)據(jù)創(chuàng)建另一個(gè)數(shù)據(jù)框

對(duì)數(shù)據(jù)框中的列進(jìn)行分組,并使用分組數(shù)據(jù)創(chuàng)建另一個(gè)數(shù)據(jù)框

米脂 2023-07-05 16:14:28
我有一個(gè)如下所示的數(shù)據(jù)框:data:    items   status0   jet     fail1   car     fail2   car     pass3   bike    fail4   car     fail5   jet     fail6   bike    pass7   jet     fail8   jet     fail9   bike    pass我想對(duì)數(shù)據(jù)進(jìn)行分組items并使用每個(gè)值的計(jì)數(shù)創(chuàng)建一個(gè)新的數(shù)據(jù)框。預(yù)期輸出:df:  unique  count  pass  fail0    jet      4     0     41    car      3     1     22   bike      3     2     1現(xiàn)在一種方法是獲取唯一列表items并在其上循環(huán)以查找count,pass然后fail將這些列表組合到數(shù)據(jù)幀中但是我怎樣才能有效地做到這一點(diǎn)呢?
查看完整描述

2 回答

?
MM們

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

使用crosstabwith作為新索引名稱(chēng),然后為byDataFrame.rename_axis添加新列,最后將索引轉(zhuǎn)換為column by?:0 positionDataFrame.insertDataFrame.reset_index

df = pd.crosstab(df['items'], df['status']).rename_axis(columns=None, index='unique')

df.insert(0, 'count', df.sum(axis=1))

df = df.reset_index()

print (df)

? unique? count? fail? pass

0? ?bike? ? ? 3? ? ?1? ? ?2

1? ? car? ? ? 3? ? ?2? ? ?1

2? ? jet? ? ? 4? ? ?4? ? ?0

如果count應(yīng)該是最后一列,則可以使用margin參數(shù)并刪除最后一行:


df = (pd.crosstab(df['items'], df['status'],?

? ? ? ? ? ? ? ? ? margins=True,?

? ? ? ? ? ? ? ? ? margins_name='count')

? ? ? ?.rename_axis(columns=None, index='unique')

? ? ? ?.iloc[:-1]

? ? ? ?.reset_index())

print (df)

? unique? fail? pass? count

0? ?bike? ? ?1? ? ?2? ? ? 3

1? ? car? ? ?2? ? ?1? ? ? 3

2? ? jet? ? ?4? ? ?0? ? ? 4


查看完整回答
反對(duì) 回復(fù) 2023-07-05
?
收到一只叮咚

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

您可以單獨(dú)獲取值并與以下組合pd.concat:


A = df.groupby("items").size().rename("count")

A

items

bike    3

car     3

jet     4

Name: count, dtype: int64


B = (

    df.groupby(["items", "status"])

    .size()

    .unstack(fill_value=0)

    .rename_axis(columns=None)

)

B

      fail  pass

items       

bike    1   2

car     2   1

jet     4   0



pd.concat((A, B), axis=1).reset_index()


   items    count   fail    pass

0   bike    3        1      2

1   car     3        2      1

2   jet     4        4      0


查看完整回答
反對(duì) 回復(fù) 2023-07-05
  • 2 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專(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)