data_new = np.array([]) data = file_data['面积(㎡)'].values for i in data: data_new = np.append(data_new,np.array(i[:-2])) data = data_new.astype(np.float64) file_data.loc[:'面积(㎡)']=data file_data报错修改
时间: 2023-11-28 21:06:22 浏览: 70
根据您提供的代码,我看到您可能是想将 `file_data` 中的 `面积(㎡)` 字段的数值后面的单位(即 '㎡')去掉,并将剩余的数据转换为浮点数,然后更新回 `file_data` 中相应的字段。但是您的代码有一些问题,可能导致报错。
首先,您初始化 `data_new` 的时候使用了一个空的 numpy 数组,这样的话在循环过程中每次都需要将 `data_new` 扩展一次,这样的效率非常低下。建议您在初始化 `data_new` 的时候指定一个合适的大小。
其次,您在循环过程中使用了 `np.append()`,这个函数的效率也比较低下,因为它每次都会创建一个新的数组,并将原数组的数据复制到新数组中。建议您使用 Python 列表进行存储,然后在循环结束后一次性转换为 numpy 数组。
最后,您在更新 `file_data` 的时候使用了 `loc`,但是 `loc` 的用法是从行标签或列标签中选择行或列,而不是对整个 DataFrame 进行赋值。建议您使用 `iloc` 或直接对 `file_data['面积(㎡)']` 进行赋值。
下面是修改后的代码示例:
```
data = file_data['面积(㎡)'].values
data_new = [float(i[:-2]) for i in data]
file_data['面积(㎡)'] = data_new
```
这个代码将 `data` 中的每个元素去掉最后两个字符(即 '㎡'),然后转换为浮点数,存储到 `data_new` 列表中。最后将 `data_new` 赋值给 `file_data` 中的 '面积(㎡)' 列。