0

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?

1 Answers1

0

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.

jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252