OpenRefine:在一列值中交换订单字符串
OpenRefine: swapping order strings within a column of values
我有一列值的日期范围格式为 DD Month YYYY,但我希望它显示为 Month DD YYYY。因此,例如“2021 年 10 月 14 日”应该是“2021 年 10 月 14 日”——在 OpenRefine 中是否有一种简单的方法可以做到这一点?
谢谢!
根据 google 搜索,似乎有一个名为 Jython 的 python 库。如果你安装了,你可以试试。
result = re.sub('(\d+).(\w+).(\d+)', r' ', 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' ,如上所述,因此 \ 被视为转义字符。
您可以使用 date functions in OpenRefine 来解析和格式化日期。
你的情况是:
value.toDate("dd MMMM yyyy").toString("MMMM dd yyyy")
请注意,使用月份的长格式是上下文相关的。
这意味着在法语计算机上解析英文月份名称将不起作用。
我会使用空白作为分隔符将列拆分为三个:
按要求的顺序重新排列列,然后使用连接或
重新组合它们
使用以下方法创建新列:
cells['Month'].value+cells['DD'].value+cells['YYYY'].value
我有一列值的日期范围格式为 DD Month YYYY,但我希望它显示为 Month DD YYYY。因此,例如“2021 年 10 月 14 日”应该是“2021 年 10 月 14 日”——在 OpenRefine 中是否有一种简单的方法可以做到这一点?
谢谢!
根据 google 搜索,似乎有一个名为 Jython 的 python 库。如果你安装了,你可以试试。
result = re.sub('(\d+).(\w+).(\d+)', r' ', 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' ,如上所述,因此 \ 被视为转义字符。
您可以使用 date functions in OpenRefine 来解析和格式化日期。
你的情况是:
value.toDate("dd MMMM yyyy").toString("MMMM dd yyyy")
请注意,使用月份的长格式是上下文相关的。 这意味着在法语计算机上解析英文月份名称将不起作用。
我会使用空白作为分隔符将列拆分为三个:
按要求的顺序重新排列列,然后使用连接或
重新组合它们使用以下方法创建新列:
cells['Month'].value+cells['DD'].value+cells['YYYY'].value