提问者:小点点

通过Python替换整个列的值


我正在处理一个规模不足的数据库

data.shape
(18701954, 12)

该数据库中的一列包含月份说明,

data.PERIOD_DESC.unique()
array(['Apr-19', 'May-19', 'Jun-19', 'Jul-19', 'Aug-19', 'Sep-19',
   'Oct-19', 'Nov-19', 'Dec-19', 'Jan-20', 'Feb-20', 'Mar-20',
   'Apr-20', 'May-20'], dtype=object)

我想用“月份描述”替换列到“数值月份”值,并使用下面的代码

data = data.replace(['Apr-19', 'May-19', 'Jun-19', 'Jul-19', 'Aug-19', 'Sep-19','Oct-19', 'Nov-19', 'Dec-19', 'Jan-20', 'Feb-20', 'Mar-20','Apr-20', 'May-20'],[201904, 201905, 201906, 201907, 201908, 201909, 201910,201911, 201912, 202001, 202002, 202003, 202004, 202005])

现行守则需要相当长的时间。 有没有其他方法可以以不同的方式(用更少的时间)完成这个任务。

我已经考虑了下面的链接,但我想我已经在做建议的事情了。 替换整个数据帧中的字符串/值


共1个答案

匿名用户

也许您可以只对感兴趣的列执行替换操作,因为replace操作当前遍历所有12列:

data['PERIOD_DESC'] = df[['PERIOD_DESC']].replace(['Apr-19', 'May-19', 'Jun-19', 'Jul-19', 'Aug-19', 'Sep-19','Oct-19', 'Nov-19', 'Dec-19', 'Jan-20', 'Feb-20', 'Mar-20','Apr-20', 'May-20'],[201904, 201905, 201906, 201907, 201908, 201909, 201910,201911, 201912, 202001, 202002, 202003, 202004, 202005])