很難在不顯示示例的情況下進行描述,但我想在我的 pandas 數據框中創(chuàng)建一個列,其中的值等于基于組中另一列的最小值的不同列的值。假設我有以下數據框:我的目標是創(chuàng)建一個新列“d”,它等于 c 中的值,但是我希望它等于“b”的每個值的“a”的最小值。以下是所需的數據框:
2 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
利用:
df['d'] = (df.sort_values(['b','a'])['c'] .where(df['a'].eq(df.groupby('b')['a'].transform('min'))).ffill())

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
idxmin是您正在尋找的:
df['d'] = df.loc[df.groupby('b')['a'].transform('idxmin'), 'c'].values
輸出:
a b c d
0 1 cat 5 5
1 334 cat 6 5
2 321 cat 7 5
3 3 dog 8 9
4 2 dog 9 9
5 232 dog 10 9
6 3123 dog 11 9
添加回答
舉報
0/150
提交
取消