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

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

如何創建包含每行倒數第二個值的列?

如何創建包含每行倒數第二個值的列?

猛跑小豬 2023-06-13 17:19:06
我有一個 DataFrame,我需要創建一個新列,其中包含原始 DataFrame 中每一行的第二大值。樣本: df = pd.DataFrame(np.random.randint(1,100, 80).reshape(8, -1))期望的輸出: 0   1   2   3   4   5   6   7   8   9  penultimate0  52  69  62   7  20  69  38  10  57  17           621  52  94  49  63   1  90  14  76  20  84           902  78  37  58   7  27  41  27  26  48  51           583   6  39  99  36  62  90  47  25  60  84           904  37  36  91  93  76  69  86  95  69   6           935   5  54  73  61  22  29  99  27  46  24           736  71  65  45   9  63  46   4  93  36  18           717  85   7  76  46  65  97  64  52  28  80           85如何用盡可能少的代碼完成這項工作?
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

你可以使用NumPy這個:


import numpy as np


df = pd.DataFrame(np.random.randint(1,100, 80).reshape(8, -1))

df['penultimate'] = np.sort(df.values, 1)[:, -2]

print(df)

使用NumPy更快。


查看完整回答
反對 回復 2023-06-13
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

這是一個簡單的 lambda 函數!


# Input

df = pd.DataFrame(np.random.randint(1,100, 80).reshape(8, -1))


# Output

out = df.apply(lambda x: x.sort_values().unique()[-2], axis=1)

df['penultimate'] = out

print(df)

干杯!


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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