首页 > 解决方案 > 通过 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])

现有代码需要相当长的时间。有没有其他方法可以以不同的方式完成这项任务(时间更短)。

我已经考虑了以下链接,但我认为我已经在做建议的事情了。 替换整个 DataFrame 中的字符串/值

标签: pythonreplace

解决方案


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

data['PERIOD_DESC'] = data[['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])

推荐阅读