嗨,我有这样的数据:
例如
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
我想根据以下规则创建一个新列:
将是这样的:
id tendency
1 A
2 B
3 C
感谢:)
答案 0 :(得分:3)
让我们尝试透视表以计算总播放量,然后使用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)
输出:
id
1 A
2 B
3 C
dtype: object