亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

對數據框中的列進行分組,并使用分組數據創建另一個數據框

對數據框中的列進行分組,并使用分組數據創建另一個數據框

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

2 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

使用crosstabwith作為新索引名稱,然后為byDataFrame.rename_axis添加新列,最后將索引轉換為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應該是最后一列,則可以使用margin參數并刪除最后一行:


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


查看完整回答
反對 回復 2023-07-05
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

您可以單獨獲取值并與以下組合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


查看完整回答
反對 回復 2023-07-05
  • 2 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號