请用数据帧中每一行的"x-y"替换为"x“、x+1、x+2、.、y"?(其中x,y是整数)。例如,我希望像这样替换每一行:
"1-3,7“改为"1,2,3,7”
"1,4,6-9,11-13,5“改为"1,4,6,7,8,9,11,12,13,5”等字
我知道,通过遍历行并使用正则表达式,我们可以做到这一点。但是这张桌子很大,而且需要相当长的时间。所以我认为使用熊猫可能会更快。
非常感谢
发布于 2015-10-22 10:28:51
在熊猫中,您可以使用应用对DataFrame中的任何行或列应用任何函数。函数可以用lambda传递,也可以单独定义。
(旁注:你的例子并没有完全表明你是否真的有一个二维DataFrame或仅仅一个一维系列。无论哪种方式,都可以使用apply )
下一步是找到正确的函数。下面是一个粗略的版本(没有正则表达式):
def make_list(str):
lst = str.split(',')
newlst = []
for i in lst:
if "-" in i:
newlst.extend(range(*[int(j) for j in i.split("-")]))
else:
newlst.append(int(i))
return newlsthttps://stackoverflow.com/questions/33278359
复制相似问题