答案 0 :(得分:0)
尝试这个:
>>> 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
答案 1 :(得分:0)
看看这是否适合您
df['ratio']= df.groupby('Name')['Age'].apply(lambda x : (x.count()/x.sum())*x)