【发布时间】:2019-10-11 03:10:33
【问题描述】:
我正在尝试添加一列数据,该列是根据多索引数据框的最左侧索引从现有列计算得出的。
对于这个例子,我有一列统计数据,我最左边的索引是球员,下一个级别的索引是赛季。我想根据每个玩家最大统计数据的百分比添加一个相对统计数据列。
所以对于下面的数据框,我想添加一列是 rStats(相对统计),其中第一个条目是 =5/7,第二个是 =6/7,第三个是=7/7,然后一旦到达新玩家,它将使用他们的最大值,因此条目 4 将是 =3/5,依此类推。
Stats
Stephen Curry 2010 5
2011 6
2012 7
Chris Paul 2010 3
2011 4
2012 5
我已经创建了一系列最大统计数据 (df.groupby('Player')['Stats'].max()),并尝试创建一个基于条目应用正确数学运算的 for 循环在 df 中,但无法使其正常工作。
这是复制数据帧的简化版本的代码,如上所示:
import pandas as pd
players = ['Stephen Curry','Stephen Curry','Stephen Curry','Chris Paul','Chris Paul','Chris Paul']
years = [2010, 2011, 2012, 2010, 2011, 2012]
stats = [5, 6, 7, 3, 4, 5]
df = pd.DataFrame(index=[players,years],columns=['Stats'],data=stats)
【问题讨论】:
-
如果您准确地展示您尝试过的内容和结果,这将会得到改进。