data[['Polyline_GD']]=data[['路线']][-2:]#两者类型需要一致,均为dataframe 为什么我这个代码结果输出好多都是NaN
时间: 2023-10-07 15:14:19 浏览: 130
flexible-polyline:灵活的折线编码
根据你提供的代码,`data[['Polyline_GD']]`将被赋值为`data[['路线']][-2:]`的值。然而,如果你发现结果中有许多NaN值,有几个可能的原因:
1. `data[['路线']]`中的数据本身包含NaN值。在执行切片操作`[-2:]`时,如果原始数据中的最后两行包含NaN值,则这些NaN值也会出现在结果中。
2. `data[['Polyline_GD']]`列没有预先创建,因此它会自动创建并填充NaN值。如果你没有在DataFrame中预先创建`Polyline_GD`列,那么赋值操作将自动创建该列,并将其余行填充为NaN。
为了解决这个问题,你可以尝试以下步骤:
1. 确保`data[['路线']]`中没有NaN值。你可以使用`data[['路线']].dropna()`来删除包含NaN值的行。
2. 在赋值之前,先创建`Polyline_GD`列并填充为NaN。你可以使用`data['Polyline_GD'] = np.nan`来创建并填充NaN值。确保导入了`numpy`库(`import numpy as np`)。
修改后的代码示例如下:
```python
import numpy as np
# 确保data[['路线']]中没有NaN值
data[['路线']].dropna(inplace=True)
# 创建Polyline_GD列并填充为NaN
data['Polyline_GD'] = np.nan
# 将data[['路线']][-2:]赋值给data[['Polyline_GD']]
data[['Polyline_GD']] = data[['路线']][-2:]
```
这样,你应该能够正确地将`data[['Polyline_GD']]`赋值为`data[['路线']][-2:]`的值,并且不会出现NaN值。请注意,这里假设`data[['路线']]`和`data[['Polyline_GD']]`的行数是一致的。
阅读全文