繁体   English   中英

pandas dataframe 中给定子索引根据另一列中的最大值创建新列

[英]Create a new column based on the maximum value in another column for a given sub index in pandas dataframe

我有一个 pandas dataframe 叫df 它由作为多索引的 Hour 和 Level 以及作为列的 Step1 组成。 它看起来如下:

Step1
Types   
Hour    Level   
1   Level_0 4507.26700
Level_1 623.85960
Level_2 6240.49500
Level_4 23181.66600
Level_5 447.22240
... ... ...
8758    Level_W 59883.22444
Level_X 781.63500
Level_Y 4971.49200
Level_Z 4684.35940
Level_Z1    5994.00000

Step1 包含不同时间每个级别的值。 我想创建一个名为 Step2 的新列,它在每个小时的级别中具有最大值。 我可以使用df.groupby(["Hour"])["Step1"].max()获得每小时的最大值但是,我还想将其添加为df中名为 Step2 的新列。 由于dfdf.groupby(["Hour"])["Step1"].max()的大小不同,我无法做到。

创建一个名为 Step2 的新列的适当方法是什么,该列由同一小时内不同级别的最大值组成? 此外,我想创建另一个名为 Step3 的列,其中最大值仅出现在与 Level_0 相同的行中。

看看transform

df['Step2'] = df.groupby(["Hour"])['Step1'].transform(np.max)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM