diff --git a/solution/0500-0599/0511.Game Play Analysis I/README.md b/solution/0500-0599/0511.Game Play Analysis I/README.md index 5ca0090658796..67a127298ceb5 100644 --- a/solution/0500-0599/0511.Game Play Analysis I/README.md +++ b/solution/0500-0599/0511.Game Play Analysis I/README.md @@ -69,4 +69,19 @@ FROM Activity GROUP BY 1; ``` +### **Pandas** + +```python +import pandas as pd + + +def game_analysis(activity: pd.DataFrame) -> pd.DataFrame: + return ( + activity.groupby("player_id") + .agg(first_login=("event_date", "min")) + .reset_index() + ) + +``` + diff --git a/solution/0500-0599/0511.Game Play Analysis I/README_EN.md b/solution/0500-0599/0511.Game Play Analysis I/README_EN.md index 1b8d9388d0424..0780af95f1522 100644 --- a/solution/0500-0599/0511.Game Play Analysis I/README_EN.md +++ b/solution/0500-0599/0511.Game Play Analysis I/README_EN.md @@ -70,4 +70,19 @@ FROM Activity GROUP BY 1; ``` +### **Pandas** + +```python +import pandas as pd + + +def game_analysis(activity: pd.DataFrame) -> pd.DataFrame: + return ( + activity.groupby("player_id") + .agg(first_login=("event_date", "min")) + .reset_index() + ) + +``` + diff --git a/solution/0500-0599/0511.Game Play Analysis I/Solution.py b/solution/0500-0599/0511.Game Play Analysis I/Solution.py new file mode 100644 index 0000000000000..3d42f06ede95a --- /dev/null +++ b/solution/0500-0599/0511.Game Play Analysis I/Solution.py @@ -0,0 +1,9 @@ +import pandas as pd + + +def game_analysis(activity: pd.DataFrame) -> pd.DataFrame: + return ( + activity.groupby("player_id") + .agg(first_login=("event_date", "min")) + .reset_index() + ) diff --git a/solution/0500-0599/0550.Game Play Analysis IV/README.md b/solution/0500-0599/0550.Game Play Analysis IV/README.md index 2d748996035a1..6ff749005c789 100644 --- a/solution/0500-0599/0550.Game Play Analysis IV/README.md +++ b/solution/0500-0599/0550.Game Play Analysis IV/README.md @@ -107,4 +107,21 @@ FROM T WHERE rk = 1; ``` +### **pandas** + +```python +import pandas as pd + + +def gameplay_analysis(activity: pd.DataFrame) -> pd.DataFrame: + activity["first"] = activity.groupby("player_id").event_date.transform(min) + activity_2nd_day = activity.loc[ + activity["first"] + pd.DateOffset(1) == activity["event_date"] + ] + return pd.DataFrame( + {"fraction": [round(len(activity_2nd_day) / activity.player_id.nunique(), 2)]} + ) + +``` + diff --git a/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md b/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md index d26b4e381e0be..01fc9ee34de32 100644 --- a/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md +++ b/solution/0500-0599/0550.Game Play Analysis IV/README_EN.md @@ -102,4 +102,21 @@ FROM T WHERE rk = 1; ``` +### **pandas** + +```python +import pandas as pd + + +def gameplay_analysis(activity: pd.DataFrame) -> pd.DataFrame: + activity["first"] = activity.groupby("player_id").event_date.transform(min) + activity_2nd_day = activity.loc[ + activity["first"] + pd.DateOffset(1) == activity["event_date"] + ] + return pd.DataFrame( + {"fraction": [round(len(activity_2nd_day) / activity.player_id.nunique(), 2)]} + ) + +``` + diff --git a/solution/0500-0599/0550.Game Play Analysis IV/Solution.py b/solution/0500-0599/0550.Game Play Analysis IV/Solution.py new file mode 100644 index 0000000000000..d59eb5b79eb33 --- /dev/null +++ b/solution/0500-0599/0550.Game Play Analysis IV/Solution.py @@ -0,0 +1,11 @@ +import pandas as pd + + +def gameplay_analysis(activity: pd.DataFrame) -> pd.DataFrame: + activity["first"] = activity.groupby("player_id").event_date.transform(min) + activity_2nd_day = activity.loc[ + activity["first"] + pd.DateOffset(1) == activity["event_date"] + ] + return pd.DataFrame( + {"fraction": [round(len(activity_2nd_day) / activity.player_id.nunique(), 2)]} + )