我的数据框看起来像这样:
Name Category Amount
ABC Science 50
ABC History -100
XYZ Science 600
XYZ Geography -300
我想要一个数据帧,看起来像:
Name Category Amount Category%
ABC Science 50 33.33
ABC History -100 66.66
XYZ Science 500 50
XYZ Geography -500 50
你能否告诉我们哪种转型最有效?
提前致谢
答案 0 :(得分:1)
你的问题不是很清楚,但我想这就是你想要的 -
df['absamt'] = df['Amount'].apply(lambda x:abs(x))
df = df.merge(df.groupby("Name")["absamt"].sum().reset_index(), on="Name", how="left")
df['Ratio'] = df['absamt_x']/df['absamt_y']