[英]Adding a column in a multi-indexed dataframe
我有一个多索引的dataframe,其中最左边的索引是NBA Player,第二级索引是NBA Season(即2018-19)。 我想添加一个列,对每个球员的赛季进行编号。 例如,在下面的日期框架的顶部,我想在赛季旁边添加一列,将 AJ Guyton 的 2000-01 赛季列为“1”,将他的 2001-02 赛季列为“2”。 然后该过程将在整个 dataframe 中为下一个玩家重复。
Age Tm OBPM BPM DBPM
Player Season
A.J. Guyton 2000-01 22 CHI -0.57 -2.8 -2.1
2001-02 23 CHI -0.80 -3.4 -2.4
A.J. Price 2009-10 23 IND -0.75 -2.2 -1.1
2010-11 24 IND -1.51 -3.1 -1.0
2011-12 25 IND -0.35 -2.2 -1.4
我是 pandas 的新手,对 Python 来说相对较新,所以这可能是一个简单的问题,但我不知道如何解决它,因为每个玩家的开始年份都不同。
您可以将 split/apply/combine 模式与 groupby 和cumcount 一起使用。 cumcount 充当转换,它返回与原始 dataframe 具有相同索引的系列,而聚合(如平均值)为每个组返回一个值。
df['career_year'] = df.groupby(level='Player').cumcount()
使用您的数据,这将给出
Age Tm OBPM BPM DBPM career_year
Player Season
A.J. Guyton 2000-01 22 CHI -0.57 -2.8 -2.1 0
2001-02 23 CHI -0.80 -3.4 -2.4 1
A.J. Price 2009-10 23 IND -0.75 -2.2 -1.1 0
2010-11 24 IND -1.51 -3.1 -1.0 1
2011-12 25 IND -0.35 -2.2 -1.4 2
您应该包含有关如何生成示例数据的代码。 让别人更容易帮助你。
dataframe['Season'] = 2
将创建一个新列“季节”并用 2 填充它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.