บทนำ GeoPandas

การทำงานกับข้อมูลเชิงพื้นที่ใน Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

รูปแบบไฟล์เฉพาะทางด้านพื้นที่

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

ในส่วนที่เหลือของคอร์ส:

  • รูปแบบไฟล์เชิงพื้นที่ (Shapefiles, GeoJSON, GeoPackage, ...)
  • GeoPandas: pandas dataframes ที่รองรับข้อมูลเชิงพื้นที่
การทำงานกับข้อมูลเชิงพื้นที่ใน Python

นำเข้าข้อมูลเชิงพื้นที่ด้วย 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...
การทำงานกับข้อมูลเชิงพื้นที่ใน Python

แสดงผลข้อมูลเชิงพื้นที่อย่างรวดเร็วด้วย GeoPandas

countries.plot()

การทำงานกับข้อมูลเชิงพื้นที่ใน 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
การทำงานกับข้อมูลเชิงพื้นที่ใน 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 แทนชุดข้อมูลเวกเตอร์เชิงพื้นที่ในรูปตาราง:

  • คอลัมน์ 'geometry': เก็บข้อมูลเรขาคณิต
  • คอลัมน์อื่น ๆ: แอตทริบิวต์ ที่อธิบายแต่ละเรขาคณิต
การทำงานกับข้อมูลเชิงพื้นที่ใน Python

แอตทริบิวต์ '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
การทำงานกับข้อมูลเชิงพื้นที่ใน Python

DataFrame ที่รองรับข้อมูลเชิงพื้นที่

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
การทำงานกับข้อมูลเชิงพื้นที่ใน Python

สรุป

GeoDataFrame ทำงานเหมือน pandas DataFrame:

  • ฟีเจอร์ทั้งหมดของ pandas DataFrame ยังคงใช้งานได้

แต่เพิ่มความสามารถด้านเชิงพื้นที่:

  • เมธอด plot()
  • แอตทริบิวต์ geometry (GeoSeries)
  • แอตทริบิวต์และเมธอดเฉพาะทางพื้นที่ (เช่น area)
การทำงานกับข้อมูลเชิงพื้นที่ใน Python

มาฝึกกันเถอะ!

การทำงานกับข้อมูลเชิงพื้นที่ใน Python

Preparing Video For Download...