dataframeが`df`という名前だとすると、以下のコードを使って、一意な「ページ」ごとに新しいdataframeを作成し、日付ごとに一意な「ページ」ごとに「total_impressions_count」を計算し、その日のインプレッション順に並べた「クエリ」フィールドの値のトップ5を含めることができます：

```
# Group by page and date, and sum the impressions
grouped = df.groupby(['page', 'date']).agg({'impressions': 'sum'})

# Get the top 5 queries by impressions for each page and date
top_queries = df.groupby(['page', 'date', 'query']).agg({'impressions': 'sum'}).reset_index()
top_queries = top_queries.sort_values(['page', 'date', 'impressions'], ascending=[True, True, False])
top_queries = top_queries.groupby(['page', 'date']).head(5)

# Merge the impressions and top queries dataframes
result = pd.merge(grouped, top_queries, on=['page', 'date'])

# Print the resulting dataframe
print(result)
```

このコードでは、まずデータフレームを "ページ "と "日付 "でグループ化し、各グループの "impressions "カラムを合計して総インプレッション数を求めます。次に、dataframeを "page"、"date"、"query "でグループ化し、"impressions "カラムを再び合計して、各ページと日付の各クエリのインプレッション数を得ます。次に、結果のデータフレームをページ、日付、インプレッションの降順でソートし、各ページと日付の上位5クエリのみを保持します。最後に、"page "と "date "の2つのデータフレームをマージし、その日のインプレッション数でソートされた上位5つの "query "フィールドの値とともに、日付ごとのそれぞれのユニークな "page "のインプレッション数の合計を示すデータフレームを得る。
Assuming your dataframe is named `df`, you can create a new dataframe with each unique "page" and calculate the "total_impressions_count" for each unique "page" by date and include the top 5 "query" field values sorted by impressions for that given day using the following code:

```
# Group by page and date, and sum the impressions
grouped = df.groupby(['page', 'date']).agg({'impressions': 'sum'})

# Get the top 5 queries by impressions for each page and date
top_queries = df.groupby(['page', 'date', 'query']).agg({'impressions': 'sum'}).reset_index()
top_queries = top_queries.sort_values(['page', 'date', 'impressions'], ascending=[True, True, False])
top_queries = top_queries.groupby(['page', 'date']).head(5)

# Merge the impressions and top queries dataframes
result = pd.merge(grouped, top_queries, on=['page', 'date'])

# Print the resulting dataframe
print(result)
```

This code first groups the dataframe by "page" and "date", and sums the "impressions" column for each group to get the total impressions count. Then, it groups the dataframe by "page", "date", and "query", and sums the "impressions" column again to get the impressions count for each query on each page and date. It then sorts the resulting dataframe by page, date, and impressions in descending order, and keeps only the top 5 queries for each page and date. Finally, it merges the two dataframes on "page" and "date" to get a dataframe that shows the total impressions count for each unique "page" by date, along with the top 5 "query" field values sorted by impressions for that given day.