Skip to content

Instantly share code, notes, and snippets.

@MarcinMoskala
Last active June 6, 2020 08:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MarcinMoskala/f634eb20e6907845ff68da13260d29f3 to your computer and use it in GitHub Desktop.
Save MarcinMoskala/f634eb20e6907845ff68da13260d29f3 to your computer and use it in GitHub Desktop.
def add_day_month_year(df):
dates = df["Date"].map(lambda x: x[:10])
df["day_of_month"] = dates.map(lambda x: x.split("/")[1])
df["month"] = dates.map(lambda x: x.split("/")[0])
df["year"] = dates.map(lambda x: x.split("/")[2])
df["date"] = dates
return df
from pandas import read_csv
crimes_df = read_csv("CrimeData.csv")
crimes_df = add_day_month_year(crimes_df)
crimes_df = crimes_df[crimes_df.year <= "2019"]
crimes_count_df = crimes_df \
.groupby(["year", "month"]) \
.size() \
.to_frame("crimes") \
.reset_index()
from calendar import monthrange
crimes_count_df["Days in month"] = crimes_count_df.apply(lambda row: monthrange(int(row.year), int(row.month))[1], axis=1)
crimes_count_df["Average crimes"] = crimes_count_df.apply(lambda row: row["crimes"] / row["Days in month"], axis=1)
df = crimes_count_df \
.groupby(["month"])["Average crimes"] \
.mean() \
.reset_index()
print(crimes_count_df.to_string())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment