Я работаю с массивом CSV с миллиметровой строкой, который включает в себя столбцы «широта» и «долгота», и я хочу создать новый столбец, основанный на том, что называется «состояние», которое является состоянием США, которое содержит эти координаты.Каков правильный способ использования .pply с пандами?
import pandas as pd
import numpy as np
import os
from uszipcode import ZipcodeSearchEngine
def convert_to_state(coord):
lat, lon = coord["latitude"], coord["longitude"]
res = search.by_coordinate(lat, lon, radius=1, returns=1)
state = res.State
return state
def get_state(path):
with open(path + "USA_downloads.csv", 'r+') as f:
data = pd.read_csv(f)
data["state"] = data.loc[:, ["latitude", "longitude"]].apply(convert_to_state, axis=1)
get_state(path)
Я получаю сообщение об ошибке "DtypeWarning: Столбцах (4,5) смешал тип Укажите DTYPE опции импорта или установить low_memory = False.." Столбцы 4 и 5 соответствуют широте и долготе. Я не понимаю, как я буду использовать .apply для выполнения этой задачи, или если .apply - даже правильный метод для работы. Как мне продолжить?
Ты лучший. Большое спасибо за ваше объяснение! Это фантастика! – user1917407
@ пользователь1917407, спасибо! Рад, что смог помочь. – Kartik
Позвольте мне сделать дополнение к этому на самом деле. После некоторых упражнений я все еще сталкиваюсь с некоторыми проблемами, хотя я не уверен, что это связано с той же проблемой, что и раньше. Я вижу, что значение широты в журнале ошибок здесь намного больше, чем широта: однако эта аномалия полностью отсутствует в файле CSV. Любые идеи относительно того, что может вызвать эту проблему? http://pastebin.com/HZeZGNf2 – user1917407