I am having some issues with my Python code. When working with DataFrames I get a UserWarning and I’m not really sure of how to prevent it.
for index in matplatsID:
mask = (kameraData["Tid"].dt.hour >= timme) & (kameraData["Tid"].dt.hour < timme+1)
matplatsSummaHastigheter += kameraData[mask][kameraData["MätplatsID"] == index]["Hastighet"].sum()
matplatsAntalFordon += kameraData[mask][kameraData["MätplatsID"] == index]["Hastighet"].count()
UserWarning: Boolean Series key will be reindexed to match DataFrame index.
matplatsSummaHastigheter += kameraData[mask][kameraData["MätplatsID"] == index]["Hastighet"].sum()
UserWarning: Boolean Series key will be reindexed to match DataFrame index.
matplatsAntalFordon += kameraData[mask][kameraData["MätplatsID"] == index]["Hastighet"].count()
It generates these warnings, and I am dumbfounded of how to avoid them, any ideas of what to do?
>Solution :
You need chain all 3 conditions for testing original DataFrame:
for index in matplatsID:
mask = (kameraData["Tid"].dt.hour >= timme) &
(kameraData["Tid"].dt.hour < timme+1) &
(kameraData["MätplatsID"] == index)
matplatsSummaHastigheter += kameraData.loc[mask, "Hastighet"].sum()
matplatsAntalFordon += kameraData.loc[mask, "Hastighet"].count()
In your solution first filter by mask and then by kameraData["MätplatsID"] == index, so raise error, because filter of filtered DataFrame.