Làm thế nào để bạn tạo một địa chỉ trong python?
Bộ dữ liệu hiếm khi hoàn chỉnh và thường yêu cầu tiền xử lý. Hãy tưởng tượng một số bộ dữ liệu chỉ có một cột địa chỉ mà không có các cột kinh độ và vĩ độ để biểu thị dữ liệu của bạn theo địa lý. Trong trường hợp đó, bạn cần chuyển đổi dữ liệu của mình sang định dạng địa lý. Quá trình chuyển đổi địa chỉ thành thông tin địa lý — Vĩ độ và Kinh độ — để lập bản đồ vị trí của chúng được gọi là Mã hóa địa lý Show G eocoding là quá trình tính toán chuyển đổi mô tả địa chỉ vật lý thành một vị trí trên bề mặt Trái đất (biểu diễn không gian theo tọa độ số) — Wikipedia Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thực hiện mã hóa địa lý trong Python với sự trợ giúp của Thư viện Geopy và Geopandas. Hãy để chúng tôi cài đặt các thư viện này với Pip nếu bạn đã thiết lập môi trường Anaconda pip install geopandas Nếu bạn không muốn cài đặt các thư viện và tương tác trực tiếp với sổ ghi chép Jupyter đi kèm của hướng dẫn này, có liên kết Github với MyBinder ở cuối bài viết này. Đây là một môi trường được đóng gói cho phép bạn thử nghiệm hướng dẫn này trực tiếp trên web mà không cần cài đặt. Tập dữ liệu cũng được bao gồm trong môi trường này nên không cần tải xuống tập dữ liệu cho hướng dẫn này Mã hóa địa lý một địa chỉĐể định vị địa lý một địa chỉ, bạn có thể sử dụng thư viện Geopy python. Geopy có các dịch vụ Mã hóa địa lý khác nhau mà bạn có thể chọn, bao gồm Google Maps, ArcGIS, AzureMaps, Bing, v.v. Một số trong số chúng yêu cầu khóa API, trong khi một số khác thì không cần địa lýNhư ví dụ đầu tiên của chúng tôi, chúng tôi sử dụng dịch vụ Mã hóa địa lý Nominatim, được xây dựng dựa trên dữ liệu OpenStreetMap. Hãy để chúng tôi Mã hóa địa lý một địa chỉ duy nhất, tháp Eiffel ở Paris locator = Nominatim(user_agent=”myGeocoder”) Chúng tôi tạo print(“Latitude = {}, Longitude = {}”.format(location.latitude, location.longitude)) Bây giờ, chúng ta có thể in tọa độ của vị trí mà chúng ta đã tạo Latitude = 48.85614465, Longitude = 2.29782039332223 Hãy thử một số địa chỉ khác nhau của riêng bạn. Trong phần tiếp theo, chúng tôi sẽ giới thiệu cách mã hóa địa lý nhiều địa chỉ từ Pandas Dataframe Địa chỉ mã hóa địa lý từ PandasHãy để chúng tôi đọc tập dữ liệu cho hướng dẫn này. Chúng tôi sử dụng một ví dụ về tập dữ liệu Địa chỉ cửa hàng cho hướng dẫn này. Tệp CSV có sẵn trong liên kết này địa chỉ. csvDropbox là một dịch vụ miễn phí cho phép bạn mang ảnh, tài liệu và video của mình đến bất cứ đâu và chia sẻ chúng một cách dễ dàng. Không bao giờ gửi email…www. dropbox. com Tải xuống tệp CSV và đọc nó trong Pandas df = pd.read_csv(“addresses.csv”) Bảng sau đây cung cấp năm hàng đầu tiên của bảng DataFrame. Như bạn có thể thấy, không có cột kinh độ và vĩ độ để ánh xạ dữ liệu Chúng tôi nối các cột địa chỉ thành một cột phù hợp để mã hóa địa lý. Ví dụ, địa chỉ đầu tiên là Karlaplan 13,115 20,STOCKHOLM,Stockholms län, Sweden Chúng ta có thể nối các cột địa chỉ trong gấu trúc như thế này để tạo cột địa chỉ cho mã hóa địa lý Khi chúng tôi tạo cột địa chỉ, chúng tôi có thể bắt đầu mã hóa địa lý như đoạn mã bên dưới
Đoạn mã trên tạo ra một Khung dữ liệu với các cột kinh độ và vĩ độ mà bạn có thể ánh xạ bằng bất kỳ công cụ trực quan hóa Địa lý nào bạn chọn. Chúng ta hãy xem một vài hàng đầu tiên của DataFrame, nhưng trước tiên, chúng ta sẽ xóa các cột không mong muốn df = df.drop([‘Address1’, ‘Address3’, ‘Address4’, ‘Address5’,’Telefon’, ‘ADDRESS’, ‘location’, ‘point’], axis=1)df.head()làm sạch bảng với vĩ độ và kinh độ Tôi sẽ sử dụng Folium để vạch ra các điểm mà chúng tôi đã tạo nhưng vui lòng sử dụng bất kỳ công cụ Địa hình hóa nào khác mà bạn chọn. Đầu tiên, chúng tôi hiển thị các vị trí dưới dạng bản đồ vòng tròn với Folium Bản đồ được tạo bên dưới hiển thị các địa chỉ được mã hóa địa lý dưới dạng các vòng tròn Bản đồHoặc nếu bạn thích nền tối với cụm điểm tổng hợp, bạn có thể làm như sau Dưới đây là bản đồ nền tối với bản đồ Clustered point trong Folium bản đồ cụmSự kết luậnMã hóa địa lý là một nhiệm vụ quan trọng trong nhiều nhiệm vụ vị trí yêu cầu hệ tọa độ. Trong bài viết này, chúng ta đã thấy cách thực hiện mã hóa địa lý trong Python. Có rất nhiều dịch vụ khác cung cấp dịch vụ mã hóa địa lý miễn phí hoặc trả phí mà bạn có thể thử nghiệm trong GeoPy. Tôi thấy các dịch vụ mã hóa địa lý của Google Maps mạnh hơn các dịch vụ Openstreetmap mà chúng tôi đã sử dụng trong hướng dẫn này, nhưng nó yêu cầu khóa API Để tương tác và thử nghiệm với hướng dẫn này mà không cần cài đặt, tôi đã tạo một Binder. Truy cập kho lưu trữ GitHub này và nhấp vào khởi chạy chất kết dính |