去南极看鲸鱼 2023-07-25 16:51 采纳率: 33.3%
浏览 12
已结题

以 10 为基数的 int() 的文字无效:''

请问这里面的 “,”in key 是个啥?还有就是这个报错该怎么改呢,报错位置在倒数第二行,希望得到回复,提前感谢帮忙的da佬!

#1读取类型csv
typelist = []
for root,dirs,files in os.walk(csv_path,topdown=False): 
    for file in files:
        if file.endswith(".csv"):
            filename_path=os.path.join(root,file)
            typelist.append(filename_path)
"""typelist = []
for i in filelist:
    if "类型csv" in i and i.endswith(".csv") :
        typelist.append(i)
typelist = list(set(typelist))
try:
    typelist.sort(key = lambda x:int(x.split("\\")[-1].split(".")[3]))
except:
    typelist.sort(key = lambda x:int(x[:-4].split("\\")[-1].split("-")[2]))
    """

total_data = {} 
#类型csv - 各项数据
f=open("大区.txt", 'r')
大区 = eval(f.read())
f=open("小区.txt", 'r')
小区 = eval(f.read())
f=open("大小区外接矩形.txt")
exec(f.read())
for i in typelist:
    #print(i)
    key = i.split("\\")[-1]
    total_data[key] = {}
    df = pd.read_csv(i,engine = "python")
    pointlist = [(df["tb"][ii],df["E_sum"][ii]) for ii in range(len(df))]
    
    #2 计算亚群系相关数据:表里的第一第二、倒数第一第二列
    counter = {}
    for point in pointlist:    
        area = 获得亚群系(point)
        if area in counter:
            counter[area] += 1
        else:
            counter[area] = 1
            
    亚群系名,主导区,主导区占比,statu = 获得亚群系相关的四列数据(counter)
    total_data[key]["亚群系相关"] = {
        "亚群系": 亚群系名,
        "主导区": 主导区,
        "群丛状态": statu ,
        "主导区占比": 主导区占比
    }
    
    #3 群丛组、亚群丛组
    xy = [(df["XX"][ii],df["YY"][ii]) for ii in range(len(df))]
    c1,c2 = 获得大小区分区(xy)
    total_data[key]["植被区相关"] = {
        "大区": c1,
        "小区": c2,
    }
    #4 六边形图
    counter = {}
    for point in pointlist:    
        area = 获得六边形分区(point)
        if area in counter:
            counter[area] += 1
        else:
            counter[area] = 1
    六边形分区,主导区,主导区占比,statu = 获得六边形图相关的四列数据(counter)
    total_data[key]["六边形图相关"] = {
        "六边形分区": 六边形分区,
        "主导区": 主导区,
        "群丛状态": statu ,
        "主导区占比": 主导区占比
    }
    
l = []
for i in total_data:
    l.append([total_data[i]["亚群系相关"]["亚群系"],total_data[i]["亚群系相关"]["主导区"],total_data[i]["植被区相关"]["大区"],total_data[i]["植被区相关"]["小区"],i[:-4],total_data[i]["亚群系相关"]["群丛状态"],total_data[i]["亚群系相关"]["主导区占比"]])
    
def grade(key):
    mark = 0
    if "," in key: mark += 99999999
    
    def getcode(一节):
        for i in "P,B,CT,WT,ST,T,ERROR".split(","):
            if 一节.startswith(i):
                return 10**"P,B,CT,WT,ST,T,ERROR".split(",").index(i) + int(一节.split("-")[-1])
                break
    return [int(","in key)]+[getcode(i) for i in key.split(",")] 
l.sort(key = lambda x : [["稳态","单亚稳态","双亚稳态","混沌态"].index(x[-2])]+grade(x[0])+grade(x[1]) + [int(x[2]),int(x[3]),-float(x[6].split(",")[0][:-1])])    



img

  • 写回答

4条回答 默认 最新

  • threenewbee 2023-07-25 16:54
    关注

    int(x[2])
    int(x[3])
    这里其中某个不是数字

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 已采纳回答 7月26日
  • 创建了问题 7月25日