Having geopandas installed in my Python environment, I can read a shapefile into a geodataframe with
In: import geopandas as gpd myShapefile = gpd.read_file(path_to_my_shapefile) print(myShapefile) Out: myShapefile as a geodataframe Unfortunately, I have some shapefiles which contain lots of attribute columns which I don't need in the end, slowing down the reading process a lot. Is there any possibility to limit the reading of the shapefile to specific attribute columns?
In regular pandas, I could use the usecols argument to the read_csv and read_table functions to limit the reading to the specified columns, e.g.
import pandas as pd pd.read_csv(path_to_my_csv_file, usecols=['onlyThisColumn', 'andThatColumnAsWell', 'butNoOther']) However, using usecols in geopandas' read_file method gives an error, probably because geopandas uses Fiona to read shapefiles which does not accept the argument.
File "C:\Python34-64bit\lib\site-packages\geopandas\io\file.py", line 13, in read_file with fiona.open(filename, **kwargs) as f: TypeError: open() got an unexpected keyword argument 'usecols' Is there any other argument or way to achieve this with geopandas/Fiona?