Контекст : Я пытаюсь получить из моего набора данных записи, соответствующие следующим условиям:
- Если отметка времени находится в диапазоне 01: 00-05: 00 утра
- И если значение «угрозы» равно «3»
РЕДАКТИРОВАТЬ : Таким образом, очевидно, я могу распечатать все часы в выбранном пользователем, который получен для 'listCoords ', делая' listCoord.index.hour '. Потому что час является атрибутом DateTime в pandas. Этот код, который я использую в условном выражении моего кода: color=np.where((listCoords.index.hour == 6), 'red', '#5DBCD2')]
К этому коду я также хочу добавить условие: listCoord.index.Thread == '3', чтобы мой код стал :
color=np.where((listCoords.index.hour == 6) & (listCoord.index.Thread == '3'), 'red', 'blue')]
Но очевидно, что «Поток» - это просто имя столбца в моем наборе данных, а не атрибут DateTime в pandas. Вопрос : как добавить второе условие к той же строке? Чтобы мой код стал проще и понятнее.
Мой набор данных : новый образец набора данных points.csv:
Date/Time Lat, Lon, Threat
2019-03-23 04:00:00, -14.809489988279145, 26.191607774273443, 1
2019-03-23 04:00:00, -14.792921094981814, 26.191716715339687, 2
2019-03-23 04:05:00, -14.798684405083584, 26.162881454312586, 3
2019-03-23 04:10:00, -14.80112670820822, 26.173830400821103, 2
РЕДАКТИРОВАН. - Мой код :
def update_graph(datePicked, selectedData, selectedLocation):
zoom = 10.5
latInitial = -14.873619
lonInitial = 26.106700
bearing = 0
if selectedLocation:
zoom = 13.0
latInitial = list_of_fixed_sensors[selectedLocation]["lat"]
lonInitial = list_of_fixed_sensors[selectedLocation]["lon"]
date_picked = dt.strptime(datePicked, "%Y-%m-%d")
monthPicked = date_picked.month - 4
dayPicked = date_picked.day - 1
listCoords = getLatLonColor(selectedData, monthPicked, dayPicked)
# print(listCoords.index.Threat)
return go.Figure(
data=[
# Data for all observations based on date and time
Scattermapbox(
lat=listCoords["Lat"],
lon=listCoords["Lon"],
mode="markers",
hoverinfo="text + lat + lon",
text=listCoords.index.hour,
marker=dict(
showscale=True,
# the color is decided by the time of detection.
# color=np.append(np.insert(listCoords.index.hour, 0, 0), 23),
color=np.where((listCoords.index.hour == 6), 'red', 'blue')]