diff --git src/wp-admin/includes/privacy-tools.php src/wp-admin/includes/privacy-tools.php
index a8a115b..feacff2 100644
--- src/wp-admin/includes/privacy-tools.php
+++ src/wp-admin/includes/privacy-tools.php
@@ -234,7 +234,18 @@ function _wp_personal_data_cleanup_requests() {
  * @return string The HTML for this group and its items.
  */
 function wp_privacy_generate_personal_data_export_group_html( $group_data ) {
-	$group_html = '<h2>' . esc_html( $group_data['group_label'] ) . '</h2>';
+
+	$group_html  = '<h2>';
+	$group_html .= esc_html( $group_data['group_label'] );
+
+	if ( isset( $group_data['group_count'] ) && $group_data['group_count'] ) {
+		$items_count = count( (array) $group_data['items'] );
+		if ( $items_count > 1 ) {
+			$group_html .= sprintf( ' <span class="count">(%d)</span>', $items_count );
+		}
+	}
+
+	$group_html .= '</h2>';
 
 	if ( ! empty( $group_data['group_description'] ) ) {
 		$group_html .= '<p>' . esc_html( $group_data['group_description'] ) . '</p>';
@@ -621,6 +632,11 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde
 		$group_id    = $export_datum['group_id'];
 		$group_label = $export_datum['group_label'];
 
+		$group_count = false;
+		if ( isset( $export_datum['group_count'] ) ) {
+			$group_count = (bool) $export_datum['group_count'];
+		}
+
 		$group_description = '';
 		if ( ! empty( $export_datum['group_description'] ) ) {
 			$group_description = $export_datum['group_description'];
@@ -629,6 +645,7 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde
 		if ( ! array_key_exists( $group_id, $groups ) ) {
 			$groups[ $group_id ] = array(
 				'group_label'       => $group_label,
+				'group_count'       => $group_count,
 				'group_description' => $group_description,
 				'items'             => array(),
 			);
diff --git src/wp-includes/comment.php src/wp-includes/comment.php
index 841bb9b..10edb95 100644
--- src/wp-includes/comment.php
+++ src/wp-includes/comment.php
@@ -3436,6 +3436,7 @@ function wp_comments_personal_data_exporter( $email_address, $page = 1 ) {
 		$data_to_export[] = array(
 			'group_id'          => 'comments',
 			'group_label'       => __( 'Comments' ),
+			'group_count'       => true,
 			'group_description' => __( 'User&#8217;s comment data.' ),
 			'item_id'           => "comment-{$comment->comment_ID}",
 			'data'              => $comment_data_to_export,
diff --git src/wp-includes/media.php src/wp-includes/media.php
index 27b1eb8..4846279 100644
--- src/wp-includes/media.php
+++ src/wp-includes/media.php
@@ -4309,6 +4309,7 @@ function wp_media_personal_data_exporter( $email_address, $page = 1 ) {
 			$data_to_export[] = array(
 				'group_id'          => 'media',
 				'group_label'       => __( 'Media' ),
+				'group_count'       => true,
 				'group_description' => __( 'User&#8217;s media data.' ),
 				'item_id'           => "post-{$post->ID}",
 				'data'              => $post_data_to_export,
diff --git tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportGroupHtml.php tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportGroupHtml.php
index f9f6dd5..f15af95 100644
--- tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportGroupHtml.php
+++ tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportGroupHtml.php
@@ -197,4 +197,94 @@ class Tests_Privacy_WpPrivacyGeneratePersonalDataExportGroupHtml extends WP_Unit
 		$this->assertNotContains( $data['items'][0]['images']['value'], $actual );
 		$this->assertContains( '<th>Images are not allowed</th><td></td>', $actual );
 	}
+
+	/**
+	 * Test displaying group count.
+	 *
+	 * @ticket 46895
+	 */
+	public function test_group_html_generation_when_group_count_displayed() {
+		$data = array(
+			'group_label' => 'Test Data Group',
+			'group_count' => true,
+			'items'       => array(
+				array(
+					array(
+						'name'  => 'Field 1 Name',
+						'value' => 'Field 1 Value',
+					),
+				),
+				array(
+					array(
+						'name'  => 'Field 2 Name',
+						'value' => 'Field 2 Value',
+					),
+				),
+			),
+		);
+
+		$actual = wp_privacy_generate_personal_data_export_group_html( $data );
+
+		$this->assertContains( '<h2>Test Data Group', $actual );
+		$this->assertContains( '<span class="count">(2)</span></h2>', $actual );
+		$this->assertSame( 2, substr_count( $actual, '<table>' ) );
+	}
+
+	/**
+	 * Test hiding group count display.
+	 *
+	 * @ticket 46895
+	 */
+	public function test_group_html_generation_when_group_count_not_displayed() {
+		$data = array(
+			'group_label' => 'Test Data Group',
+			'group_count' => false,
+			'items'       => array(
+				array(
+					array(
+						'name'  => 'Field 1 Name',
+						'value' => 'Field 1 Value',
+					),
+				),
+				array(
+					array(
+						'name'  => 'Field 2 Name',
+						'value' => 'Field 2 Value',
+					),
+				),
+			),
+		);
+
+		$actual = wp_privacy_generate_personal_data_export_group_html( $data );
+
+		$this->assertContains( '<h2>Test Data Group</h2>', $actual );
+		$this->assertNotContains( '<span class="count">', $actual );
+		$this->assertSame( 2, substr_count( $actual, '<table>' ) );
+	}
+
+	/**
+	 * Test group count is not displayed for a single item.
+	 *
+	 * @ticket 46895
+	 */
+	public function test_group_html_generation_should_not_display_group_count_when_single_item() {
+		$data = array(
+			'group_label' => 'Test Data Group',
+			'group_count' => true,
+			'items'       => array(
+				array(
+					array(
+						'name'  => 'Field 1 Name',
+						'value' => 'Field 1 Value',
+					),
+				),
+			),
+		);
+
+		$actual = wp_privacy_generate_personal_data_export_group_html( $data );
+
+		$this->assertContains( '<h2>Test Data Group</h2>', $actual );
+		$this->assertNotContains( '<span class="count">', $actual );
+		$this->assertSame( 1, substr_count( $actual, '<table>' ) );
+	}
 }
