OpenRefine:在一列值中交换顺序字符串



我有一列值,其日期范围格式化为DD Month YYYY,但我希望它读取Month DD YYYY。例如"2021年10月14日";应该是2021年10月14日-有一个简单的方法来做到这一点在OpenRefine?

谢谢!

您可以使用OpenRefine中的日期函数来解析和格式化日期。

在你的例子中是:

value.toDate("dd MMMM yyyy").toString("MMMM dd yyyy")

注意,使用长形式的月份是上下文敏感的。这意味着在法语计算机上解析英文月份名称将无法工作。

从google搜索中可以看到有一个名为Jython的python库。如果你安装了它,你可以试试。

result = re.sub('(d+).(w+).(d+)', r'2 1 3', input) 

2021年10月14日

d+ matches 14
w+ matches October 
d+ matches 2021

()将它们分组,因此(d+)是第一组,(w+)是第二组。然后你用2 1 3来指代这些组,也就是说,把第2组(10月)移到最开始,第1组(14月)移到中间,第3组(2021年)保持原样。这在R中工作,我并不真正使用python,但看起来你需要在前面使用R ',如上所述,因此被视为转义字符。

我将使用blank作为分隔符将column拆分为三个:

  1. 按所需顺序重新排序列,然后使用join或

    重新组合它们
  2. 创建新列:

    cells['Month'].value+cells['DD'].value+cells['YYYY'].value
    

最新更新