我有以下数据帧:
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
'Parrot', 'Parrot'],
'Habitat':['Jungle', 'Jungle',
'Sky', 'Sky'],
'Tmp':['A', 'B', 'C', 'D'],
'Max Speed': [380., 370., 24., 26.]})
>>> df
Animal Habitat Tmp Max Speed
0 Falcon Jungle A 380.0
1 Falcon Jungle B 370.0
2 Parrot Sky C 24.0
3 Parrot Sky D 26.0
我试图添加额外的列“Output”,该列将根据列“Max Speed”的最大值从“Tmp”中获取值,该列由列“Animal”和“Habitat”组成
期望输出:
Animal Habitat Tmp Max Speed Output
0 Falcon Jungle A 380.0 A
1 Falcon Jungle B 370.0 A
2 Parrot Sky C 24.0 D
3 Parrot Sky D 26.0 D
可以使用groupby
然后将其加入原始数据集中。但是有没有更有效的方法来做到这一点?也许使用transform
或其他什么
您可以定义以
pd.dataframe
为参数的函数:请注意使用
pandas.DataFrame.squeeze
函数返回标量值。 然后使用groupby
简单地apply
上述函数:结果是:
相关问题 更多 >
编程相关推荐