替换数据框中一列的值

杰瑞

导入pd作为pd导入numpy作为np导入ast

pd.options.display.max_columns = 20

我有如下所示的数据框列季节(前20个条目):

      season
0     2006-07
1     2007-08
2     2008-09
3     2009-10
4     2010-11
5     2011-12
6     2012-13
7     2013-14
8     2014-15
9     2015-16
10    2016-17
11    2017-18
12    2018-19
13     Career
14     season
15    2018-19
16     Career
17     season
18    2017-18
19    2018-19

它从季节开始,到职业生涯结束。我想用从1开始到职业结束的数字替换年份。我想像这样:

      season
0     1
1     2
2     3
3     4
4     5
5     6
6     7
7     8
8     9
9     10
10    11
11    12
12    13
13     Career
14     season
15    1
16     Career
17     season
18    1
19    2

因此,每当有专栏的季节出现时,计数就应该重置,而每当有职业时,计数都应该结束。

耶斯列尔

通过比较由Series.isin移位值和GroupBy.cumcountfor计数器创建的掩码来创建连续组

s = df['season'].isin(['Career', 'season'])
df['new'] = np.where(s, df['season'], df.groupby(s.ne(s.shift()).cumsum()).cumcount() + 1)
print (df)
     season     new
0   2006-07       1
1   2007-08       2
2   2008-09       3
3   2009-10       4
4   2010-11       5
5   2011-12       6
6   2012-13       7
7   2013-14       8
8   2014-15       9
9   2015-16      10
10  2016-17      11
11  2017-18      12
12  2018-19      13
13   Career  Career
14   season  season
15  2018-19       1
16   Career  Career
17   season  season
18  2017-18       1
19  2018-19       2

对于替换列season

s = df['season'].isin(['Career', 'season'])
df.loc[~s, 'season'] = df.groupby(s.ne(s.shift()).cumsum()).cumcount() + 1
print (df)
    season
0        1
1        2
2        3
3        4
4        5
5        6
6        7
7        8
8        9
9       10
10      11
11      12
12      13
13  Career
14  season
15       1
16  Career
17  season
18       1
19       2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:返回数据框,其中一列的值大于另一列的值

为数据框的每一列替换特殊值

如何用其中一列替换 MultiIndex 数据框的级别之一

根据另一列具有输入数据框的值替换一列的值

根据 R 中一列中的值获取数据框单元格的值

将字典列表转换为数据框,其中一列用于键,一列用于值

替换字符串列中的数据框值,以获取要从另一列替换的值

如何基于Julia中一列中的值查找数据框的行的平均值?

带走数据框中一列中的所有先前值

如何用其中一行的值替换数据框的列标签

重新映射数据框中的值,其中键是一列,要替换的值是另一列

如何根据同一数据框中另一列的值替换数据框中的值?

给定另一列的值替换熊猫数据框中的值

根据一列中的值替换整个数据框中的空值

根据另一列的值替换 Pandas 数据框中的特定值

用另一列中的值替换数据框中的占位符值

根据条件将数据框列中的值替换为另一列

应用特定功能根据数据框中另一列的条件替换列的值

根据另一列替换数据框列中的值

用另一张表中的另一列替换数据框中的值

根据R中的另一数据框替换一列中的值

编写一个函数,用于基于字符向量的for循环替换数据集中一列的报告值

根据同一数据框内另一列中的值替换数据框列中的值

大熊猫合并两个数据框,其中一个包含另一列的值

从熊猫数据框中选择多行,其中一列包含一些值,如NaN

如何检查熊猫数据框中一列对另一列的依赖性

根据 R 中一列的值将一个数据框中的值插入到另一个数据框中

用pandas数据框另一列中的值替换空列表

Pandas数据框:根据另一列中的值替换多行