data = data[data.建成时间.str.contains('年建')]
data['单价'] = data.单价.map(lambda x : round(
float(re.findall(r'单价(.*?)元/平方米',x)[0])/10000,2))
data['面积'] = data.面积.map(lambda x:round(float(x.replace('平方米','')),2))
data['建成时间'] = data.建成时间.map(lambda x:float(x.replace('年建','')))
data['关注人数'] = data.关注人数.map(lambda x:float(x.replace('人关注','')))
data.head()
您的代码截图——
如果您 re.findall() 没有获取到内容,值为 [] ,re.findall()[0] 将会报“下标溢出”错误,用 print(re.findall()) 看一下,是不是 [] 。
该段代码的作用是处理一个数据集中的某些列,对其中的字符串进行操作,并将结果保存在新的列中。
如果在对列表进行索引时超出范围,通常是因为指定的索引超出了列表的长度。例如,如果尝试访问列表中的第7个元素,但该列表只有5个元素,则会引发“索引超出范围”的异常。
在这段代码中,如果在以下代码行中使用了超出范围的索引,可能会引发索引超出范围的异常:
data['单价'] = data.单价.map(lambda x : round(float(re.findall(r'单价(.*?)元/平方米',x)[0])/10000,2))
data['面积'] = data.面积.map(lambda x:round(float(x.replace('平方米','')),2))
data['建成时间'] = data.建成时间.map(lambda x:float(x.replace('年建','')))
data['关注人数'] = data.关注人数.map(lambda x:float(x.replace('人关注','')))
这可能是因为数据集中的某些值不符合代码中指定的格式,例如,某些值可能不包含所需的文本或格式不正确。如果出现此情况,则需要检查数据集中的所有值,以确定它们是否符合所需的格式。