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

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

對于每一行返回最小值的列名 - pandas

對于每一行返回最小值的列名 - pandas

呼如林 2023-06-27 10:36:41
假設我有一個具有以下值的數據框:id    product1sold   product2sold   product3sold1     2              3              32     0              0              53     3              2              1如何在每個 ID 的列表中添加包含所有最暢銷和最不暢銷產品的“most_sold”和“least_sold”列?它應該看起來像這樣。id    product1   product2   product3    most_sold                least_sold1        2          3          3        [product2, product3]      [product1]     2        0          0          5        [product3]                [product1, product2]3        3          2          1        [product1]                [product3]
查看完整描述

2 回答

?
慕運維8079593

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

使用列表理解來測試產品列表的最小值和最大值:


#select all columns without first

df1 = df.iloc[:, 1:]

cols = df1.columns.to_numpy()


df['most_sold'] = [cols[x].tolist() for x in df1.eq(df1.max(axis=1), axis=0).to_numpy()]

df['least_sold'] = [cols[x].tolist() for x in df1.eq(df1.min(axis=1), axis=0).to_numpy()]

print (df)

? ?id? product1sold? product2sold? product3sold? ? ? ? ? ? ? ? ? ? ?most_sold? \

0? ?1? ? ? ? ? ? ?2? ? ? ? ? ? ?3? ? ? ? ? ? ?3? [product2sold, product3sold]? ?

1? ?2? ? ? ? ? ? ?0? ? ? ? ? ? ?0? ? ? ? ? ? ?5? ? ? ? ? ? ? ? [product3sold]? ?

2? ?3? ? ? ? ? ? ?3? ? ? ? ? ? ?2? ? ? ? ? ? ?1? ? ? ? ? ? ? ? [product1sold]? ?


? ? ? ? ? ? ? ? ? ? ?least_sold??

0? ? ? ? ? ? ? ? [product1sold]??

1? [product1sold, product2sold]??

2? ? ? ? ? ? ? ? [product3sold]??

如果性能不重要,可以使用DataFrame.apply

df1 = df.iloc[:, 1:]


f = lambda x: x.index[x].tolist()

df['most_sold'] = df1.eq(df1.max(axis=1), axis=0).apply(f, axis=1)

df['least_sold'] = df1.eq(df1.min(axis=1), axis=0).apply(f, axis=1)


查看完整回答
反對 回復 2023-06-27
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

你可以做這樣的事情。

minValueCol = yourDataFrame.idxmin(axis=1) maxValueCol =  yourDataFrame.idxmax(axis=1)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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