首页 > 解决方案 > 如何根据组 ID 和第一个值的百分比创建新的 Pandas 列?

问题描述

这是原始输入数据框。

输入数据框

这是预期的输出数据帧。请帮忙,谢谢。

输出数据框

标签: pandasdataframe

解决方案


试试这个:

>>> df["Age_first"]=df.join(df.groupby(df["Name"]).agg({"Age":"first"}), on="Name", rsuffix="_2")[["Age_2"]]
>>> df["Ratio"]=df["Age"]/df["Age_first"]
>>> df
  Name  Age  Age_first  Ratio
0    A    2          2    1.0
1    A    3          2    1.5
2    A    1          2    0.5
3    B   10         10    1.0
4    B    8         10    0.8
5    B   12         10    1.2
>>> df = df.drop("Age_first", axis=1)
>>> df
  Name  Age  Ratio
0    A    2    1.0
1    A    3    1.5
2    A    1    0.5
3    B   10    1.0
4    B    8    0.8
5    B   12    1.2

推荐阅读