Openrefine,从一个区间获取所有数字
Openrefine, get all the numbers from an interval
我有这样的细胞:
031 - 039
我想将它转换成不同的单元格,所有数字都在其间:
031
032
033
034
035
036
037
038
039
我该怎么做?
更新
尝试与python/jython合作:
if " - " in value:
number_list = []
first = int(value.split(" - ")[0])
last = int(value.split(" - ")[1])
for i in range(first, last):
i += 1
num = str(i)
number_list.append(num)
return str(first)+"|"+"|".join(number_list)
else:
return value
我现在真的不知道如何在 jython 中创建具有所需值的新单元格。所以我将在第二步中执行此操作,"normal" 被“|”分割。
C# 示例:
var input = "31 - 39";
var tmp = input.Split("-");
var start = int.Parse(tmp[0].Trim());
var end = int.Parse(tmp[1].Trim());
var count = end - start + 1;
var result = Enumerable.Range(start, count);
你的更新是正确的,尽管你可以大大简化它。
>>> first,last = "31 - 39".split(" - ")
>>> "|".join([format(i,"03") for i in range(int(first),int(last)+1)])
'031|032|033|034|035|036|037|038|039'
无法创建新的 rows/cells,因此最好使用 "Split multi-valued cells"。
我有这样的细胞:
031 - 039
我想将它转换成不同的单元格,所有数字都在其间:
031
032
033
034
035
036
037
038
039
我该怎么做?
更新
尝试与python/jython合作:
if " - " in value:
number_list = []
first = int(value.split(" - ")[0])
last = int(value.split(" - ")[1])
for i in range(first, last):
i += 1
num = str(i)
number_list.append(num)
return str(first)+"|"+"|".join(number_list)
else:
return value
我现在真的不知道如何在 jython 中创建具有所需值的新单元格。所以我将在第二步中执行此操作,"normal" 被“|”分割。
C# 示例:
var input = "31 - 39";
var tmp = input.Split("-");
var start = int.Parse(tmp[0].Trim());
var end = int.Parse(tmp[1].Trim());
var count = end - start + 1;
var result = Enumerable.Range(start, count);
你的更新是正确的,尽管你可以大大简化它。
>>> first,last = "31 - 39".split(" - ")
>>> "|".join([format(i,"03") for i in range(int(first),int(last)+1)])
'031|032|033|034|035|036|037|038|039'
无法创建新的 rows/cells,因此最好使用 "Split multi-valued cells"。