你好,我有这个数据帧:
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