ข้อมูลร้านอาหารในปารีสในรูปแบบ GeoDataFrame
ในแบบฝึกหัดการเขียนโค้ดแรกของบทนี้ เราได้นำเข้าข้อมูลตำแหน่งของร้านอาหารในปารีสจากไฟล์ csv
เพื่อเปิดใช้งานฟังก์ชันด้านภูมิสารสนเทศของ GeoPandas เราต้องแปลง pandas DataFrame ให้เป็น GeoDataFrame ซึ่งทำได้ด้วย constructor GeoDataFrame() และฟังก์ชัน geopandas.points_from_xy() โดยได้เตรียมโค้ดส่วนนี้ไว้ให้แล้ว
เมื่อได้ GeoDataFrame แล้ว ฟังก์ชันเชิงพื้นที่ทั้งหมดก็พร้อมใช้งาน เช่น การพล็อตเรขาคณิต ในแบบฝึกหัดนี้เราจะสร้างกราฟเดิมจากแบบฝึกหัดแรกด้วยชุดข้อมูลร้านอาหาร แต่คราวนี้ใช้เมธอด plot() ของ GeoDataFrame แทน
ได้นำเข้า pandas เป็น pd, GeoPandas เป็น geopandas และฟังก์ชัน pyplot ของ matplotlib เป็น plt เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำงานกับข้อมูลเชิงพื้นที่ใน Python
คำแนะนำการฝึกหัด
- ตรวจสอบแถวแรกของ GeoDataFrame
restaurants - พล็อตด้วยเมธอด
plot()ของ GeoDataFrame โดยค่าที่ได้คืนมาเป็นออบเจกต์ axes ของ matplotlib ให้ตั้งชื่อว่าax - ตั้งค่าขนาด marker เป็น 1 เหมือนเดิม
- เพิ่ม basemap layer โดยใช้
contextily
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Read the restaurants csv file into a DataFrame
df = pd.read_csv("paris_restaurants.csv")
# Convert it to a GeoDataFrame
restaurants = geopandas.GeoDataFrame(df, geometry=geopandas.points_from_xy(df.x, df.y))
# Inspect the first rows of the restaurants GeoDataFrame
print(restaurants.____)
# Make a plot of the restaurants
ax = restaurants.____
import contextily
contextily.____(____)
plt.show()