2017-09-05 48 views
1

我在从pandas/geopandas中的GeoDataFrame中提取单个点时遇到了一些问题。索引地理数据框时维护地理结构

事实上,如果我使用单个索引(使用iloc或ix),该函数将返回一个pd.Series文件,因此我将丢失所有属性和方法。 这就是我说的:

>>> type(OMS) 
<class 'geopandas.geodataframe.GeoDataFrame'> 
>>> type(OMS.iloc[2:3]) 
<class 'geopandas.geodataframe.GeoDataFrame'> 
>>> type(OMS.iloc[2]) 
<class 'pandas.core.series.Series'> 

有没有办法有效地提取一个几何形状不改变数据结构/类型?

特别是我需要在提取的点上应用缓冲区方法(它存在于GeoDataFrame和GeoSeries类中)。

谢谢!

+1

'OMS.iloc [2:3]'或'OMS.iloc [[2]]' –

回答

0

使用双括号:

OMS.iloc[[2]] 
+0

这一工程!谢谢! 尽管我不明白......为什么迫使索引成为一个列表,因此iloc/ix会返回一个GeoDataFrame(多个条目与一个单一条目)? –

+0

从数据框中选择单个列时,Pandas会自动将返回值转换为Series。因此,周围是列表中的单个列,Pandas保留DataFrame。或者你可以使用2:3切分你的列。或者你可以做OMS.iloc [2] .to_frame()。 –