Вот что у меня есть в моем фрейме данных:
RecordType Latitude Longitude Name
L 28.2N 70W Jon
L 34.3N 56W Dan
L 54.2N 72W Rachel
Примечание : dtype
всех столбцов равно object
.
Теперь, в моем последнем кадре данных, я хочу включить только те строки, в которых широта и долгота находятся в определенном диапазоне (скажем, 24 < Latitude < 30
и 79 < Longitude < 87
).
Моя идея состоит в том, чтобы apply
функция для всех значений в столбцах Latitude
и Longitude
, чтобы сначала получить float
значения, такие как 28.2
и т. Д., А затем сравнить значения, чтобы увидеть, попадают ли они в мой диапазон.Поэтому я написал следующее:
def numbers(value):
return float(value[:-1])
result[u'Latitude'] = result[u'Latitude'].apply(numbers)
result[u'Longitude'] = result[u'Longitude'].apply(numbers)
Но я получаю следующее предупреждение:
Warning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Мне трудно понять это, так как я новичок в Пандах.Какой лучший способ сделать это?