![](/img/trans.png)
[英]How to create a new column in a Pandas DataFrame based on a column in another 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 的新列。 由于df
和df.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.