簡體   English   中英

根據pandas中的多個條件添加一個新的dataframe

[英]add a new dataframe based on multiple condition in pandas

嗨,我有這樣的數據:

例如

id        genre    total_play
1         pop      20
1         rock     30
1         jazz     60
2         pop      60
2         country  30
2         rock     25
3         latin    25
3         kpop     25
3         folk     10

我想根據以下規則創建一個新列:

  • 如果用戶聽爵士音樂的時間超過總播放時間的 30%,則該用戶將被標記為 A 類
  • 如果用戶收聽流行音樂的時間超過總播放量的 40%,則會被標記為 B 類
  • 除此之外 C

並且會是這樣的:

id   tendency
1    A
2    B
3    C

先謝謝了:)

讓我們試試 pivot 表來計算總播放次數,然后使用np.select

plays  = df.pivot_table('total_play','id','genre',fill_value=0)
totals = plays.sum(1)

pd.Series(np.select([plays['jazz']>totals*0.3, plays['pop'] > totals*0.4],['A','B'],'C'),
          index=plays.index)

Output:

id
1    A
2    B
3    C
dtype: object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM