问题描述
我想编写一个函数,该函数按其整数部分对列表中的字符串进行排序。这些排序后的字符串将稍后用于以所需方式在Unable to cast observablecollection(of base) to observablecollection(of derived)
数据帧中移动某些变量。 此功能需要执行所有操作。换句话说,它会覆盖给定列表作为回报。在下面可以找到我尝试过的东西:
pandas
运行此功能时,我收到以下信息:
import re
import pandas
wholeregex = r"^[o][0-9]+" # e.g. "o1","o9","o10" etc.
intregexkey = r"^[o]([0-9]+)" # so I'm looking for integer parts only
varslist = list(df.filter(regex=wholeregex).columns) # df was defined somewhere before
# e.g. varslist = ["o3","o8","o10","o1"]
#result should be varslist = ["o1","o3","o10"]
def strintkeysort(regex,m):
lstreturn = []
r = re.compile(regex)
lstreturn = sorted(m,key=int(r.search(m).group(1)))
return lstreturn
varslist = strintkeysort(intregexkey,varslist)
它基于@Ashwini Chaudhary的答案(Sort list of strings by a part of the string)。让我感到非常困惑的是,当我尝试完全按照他提出的方式进行操作时,一切都很好。因此,我决定增强此功能,并立即执行所有操作(不起作用)(我是Python新手)。
另一方面:Traceback (most recent call last):
File "C:/path/script.py",line 130,in <module>
varslist = strintkeysort(intregexkey,varslist)
File "C:/path/script.py",line 127,in strintkeysort
lstreturn = sorted(m,key=int(r.search(m).group(1)))
TypeError: expected string or bytes-like object
中有专门的解决方案吗?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)