Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用熊猫可以为每个独特的组找到最高的值_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 使用熊猫可以为每个独特的组找到最高的值

Python 3.x 使用熊猫可以为每个独特的组找到最高的值,python-3.x,pandas,Python 3.x,Pandas,我是熊猫的新手,我有一个数据框,看起来像这样: ID HeatIndexCat 1 Lower 1 Moderate 1 Moderate 2 Lower 2 High 3 High 3 Lower

我是熊猫的新手,我有一个数据框,看起来像这样:

ID        HeatIndexCat       
1         Lower               
1         Moderate               
1         Moderate               
2         Lower               
2         High               
3         High      
3         Lower     
我希望为每个类别分配值(例如,较低=33,中等=33至93,较高=39至46),并从具有相似ID的每组中获得最高类别

这是理想的结果:

ID        HeatIndexCat       Max
1         Lower              Moderate 
1         Moderate               
1         Moderate               
2         Lower              High 
2         High               
3         High               High
3         Lower    
使用:

如果每个组只需要第一个值:

df['Max'] = df['Max'].mask(df['ID'].duplicated(), '')
print (df)
   ID HeatIndexCat  new       Max
0   1        Lower   33  Moderate
1   1     Moderate   34          
2   1     Moderate   34          
3   2        Lower   33      High
4   2         High   40          
5   3         High   40      High
6   3        Lower   33          
使用:

如果每个组只需要第一个值:

df['Max'] = df['Max'].mask(df['ID'].duplicated(), '')
print (df)
   ID HeatIndexCat  new       Max
0   1        Lower   33  Moderate
1   1     Moderate   34          
2   1     Moderate   34          
3   2        Lower   33      High
4   2         High   40          
5   3         High   40      High
6   3        Lower   33          

什么是中等=33到93,高=39到46?你能用数字填充的新列添加预期输出吗?对不起,我忘了包括它。我正在研究热指数数据集。这些值以°C为单位。勘误表:中等=33至39@jezrael,你的意思是用数字值而不是类别输出最大值吗?基本上@jezrael说的是中等33-93和高39-46相交,“高”基本上是“中等”的子集,我们如何知道分配哪一个?你的意思是中等是33-93,高的范围除外?什么意思是中等=33到93,高=39到46?你能用数字填充的新列添加预期输出吗?对不起,我忘了包括它。我正在研究热指数数据集。这些值以°C为单位。勘误表:中等=33至39@jezrael,你的意思是用数字值而不是类别输出最大值吗?基本上@jezrael说的是中等33-93和高39-46相交,“高”基本上是“中等”的子集,我们如何知道分配哪一个?你的意思是中等是33-93除了高的范围?