Giới thiệu về GeoPandas

Làm việc với Dữ liệu Không gian địa lý trong Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Định dạng dữ liệu không gian chuyên biệt

restaurants = pd.read_csv("datasets/paris_restaurants.csv")
restaurants.head()
                                             type         x          y
0                             Restaurant européen  259641.6  6251867.4
1                Restaurant traditionnel français  259572.3  6252030.2
2                Restaurant traditionnel français  259657.2  6252143.8
3  Restaurant indien, pakistanais et Moyen Orient  259684.4  6252203.6
4                Restaurant traditionnel français  259597.9  6252230.0

Trong phần còn lại của khóa học:

  • định dạng tệp không gian (Shapefile, GeoJSON, GeoPackage, ...)
  • GeoPandas: pandas DataFrame hỗ trợ dữ liệu không gian
Làm việc với Dữ liệu Không gian địa lý trong Python

Nhập dữ liệu không gian với GeoPandas

import geopandas
countries = geopandas.read_file("countries.geojson")
countries.head()
          name      continent       gdp                            geometry
0  Afghanistan           Asia   64080.0  POLYGON ((61.21 35.65, 62.23 35...
1       Angola         Africa  189000.0  MULTIPOLYGON (((23.90 -11.72, 2...
2      Albania         Europe   33900.0  POLYGON ((21.02 40.84, 21.00 40...
4    Argentina  South America  879400.0  MULTIPOLYGON (((-66.96 -54.90, ...
5      Armenia           Asia   26300.0  POLYGON ((43.58 41.09, 44.97 41...
Làm việc với Dữ liệu Không gian địa lý trong Python

Xem nhanh dữ liệu không gian với GeoPandas

countries.plot()

Làm việc với Dữ liệu Không gian địa lý trong Python

GeoDataFrame

countries.head()
          name      continent       gdp                            geometry
0  Afghanistan           Asia   64080.0  POLYGON ((61.21 35.65, 62.23 35...
1       Angola         Africa  189000.0  MULTIPOLYGON (((23.90 -11.72, 2...
2      Albania         Europe   33900.0  POLYGON ((21.02 40.84, 21.00 40...
...
type(countries)
geopandas.geodataframe.GeoDataFrame
Làm việc với Dữ liệu Không gian địa lý trong Python

GeoDataFrame

countries.head()
          name      continent       gdp                            geometry
0  Afghanistan           Asia   64080.0  POLYGON ((61.21 35.65, 62.23 35...
1       Angola         Africa  189000.0  MULTIPOLYGON (((23.90 -11.72, 2...
2      Albania         Europe   33900.0  POLYGON ((21.02 40.84, 21.00 40...
...

GeoDataFrame biểu diễn một tập dữ liệu vectơ không gian dạng bảng:

  • cột 'geometry': chứa thông tin hình học
  • các cột khác: thuộc tính mô tả từng hình học
Làm việc với Dữ liệu Không gian địa lý trong Python

Thuộc tính 'geometry'

countries.geometry
0      POLYGON ((61.21 35.65, 62.23 35...
1      MULTIPOLYGON (((23.90 -11.72, 2...
                      ...                
175    POLYGON ((23.22 -17.52, 22.56 -...
176    POLYGON ((29.43 -22.09, 28.79 -...
Name: geometry, Length: 176, dtype: object
type(countries.geometry)
geopandas.geoseries.GeoSeries
Làm việc với Dữ liệu Không gian địa lý trong Python

DataFrame nhận biết không gian

countries.geometry.area
0       63.593500
1      103.599439
2        3.185163
          ...    
174    112.718524
175     62.789498
176     32.280371
Length: 177, dtype: float64
Làm việc với Dữ liệu Không gian địa lý trong Python

Tóm tắt

GeoDataFrame giống như pandas DataFrame:

  • mọi tính năng của pandas DataFrame thông thường vẫn hoạt động

nhưng được tăng cường chức năng không gian:

  • phương thức plot()
  • thuộc tính geometry (GeoSeries)
  • thuộc tính và phương thức chuyên biệt không gian (vd. area)
Làm việc với Dữ liệu Không gian địa lý trong Python

Ayo berlatih!

Làm việc với Dữ liệu Không gian địa lý trong Python

Preparing Video For Download...