2017-09-05 75 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()。 –