如何根据另一列值获取一列的最小值?(我不认为这是重复的,在这里找不到任何答案)



你好,我有这个数据帧:

dict = {'Group':[234, 345, 234, 456], 'Value':[5000, 2000, 1000, 3000], 'name':['abc','def','ghi','jkl']}
df = pd.Datafram(dict)
df:
Group  Value name
0    234   5000  abc
1    345   2000  def
2    234   1000  ghi
3    456   3000  jkl

我想根据组从列值中获得最小值,并将其放在名称旁边的新列中:

例如,对于组"234",最小值将为"1000",我希望新的df看起来像:

Group  Value  name min
0    234   5000  abc 1000
1    345   2000  def 2000
2    234   1000  ghi 1000
3    456   3000  jkl 3000

我试着做以下事情:

df['min']=  df.loc[df['Group'] == df['Group'], 'Value'].min()

这给了我:

Group  Value name   min
0    234   5000  abc  1000
1    345   2000  def  1000
2    234   1000  ghi  1000
3    456   3000  jkl  1000

它不接受组依赖关系。有人能帮我做这个吗?

让我们尝试分组转换:

import pandas as pd
df = pd.DataFrame({'Group': [234, 345, 234, 456],
'Value': [5000, 2000, 1000, 3000],
'name': ['abc', 'def', 'ghi', 'jkl']})
df['min'] = df.groupby('Group')['Value'].transform('min')
print(df)

输出:

组值名称最小值0 234 5000 abc 10001 345 2000 def 20002 234 1000 ghi 10003 456 3000 jkl 3000

最新更新