Population and employment - namq_10_pe

Data - Eurostat

Info

Last observation: 2026Q2 (N = 662)

First observation: 1980Q1 (N = 8)

Last data update: 01 sept. 2026, 01:07. Last compile: 02 sept. 2026, 00:31

Structure

Population Table

Code
namq_10_pe |>
  filter(time %in% c("2019Q1", "2009Q1", "1999Q1", "1989Q1"),
         na_item == "POP_NC",
         s_adj %in% c("SCA", "SA"),
         unit == "THS_PER") |>
  select(geo, s_adj, time, values) |>
  mutate(values = round(values/1000, 1)) |>
  
  spread(time, values) |>
  arrange(- `2009Q1`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Employment Table

Code
namq_10_pe |>
  filter(time %in% c("2019Q1", "2009Q1", "1999Q1", "1989Q1"),
         na_item == "EMP_DC",
         s_adj %in% c("SCA", "SA"),
         unit == "THS_PER") |>
  select(geo, s_adj, time, values) |>
  mutate(values = round(values/1000, 1)) |>
  
  spread(time, values) |>
  arrange(- `2019Q1`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Eurozone

Last observation

Code
namq_10_pe |>
  filter(na_item == "POP_NC") |>
  filter(time == max(time)) |>
  spread(unit, values) %>%
  select_if(~ n_distinct(.) > 1) |>
  
  select(geo, Geo, everything()) |>
  print_table_conditional()

Previous observation

Code
namq_10_pe |>
  filter(time %in% c("2023Q4", "2023Q3"),
         na_item == "POP_NC",
         geo == "EA20") |>
  spread(time, values) %>%
  select_if(~ n_distinct(.) > 1) |>
  print_table_conditional()
unit Unit s_adj S_adj 2023Q3 2023Q4
PCH_PRE_PER Percentage change on previous period (based on persons) SCA Seasonally and calendar adjusted data 0.1 0.1
PCH_SM_PER Percentage change compared to same period in previous year (based on persons) NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 0.6 0.5
PCH_SM_PER Percentage change compared to same period in previous year (based on persons) SCA Seasonally and calendar adjusted data 0.6 0.5
THS_PER Thousand persons NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 349857.2 350399.6
THS_PER Thousand persons SCA Seasonally and calendar adjusted data 349873.7 350366.6

France, Germany, Italy, Europe

Population

All

Code
namq_10_pe |>
  filter(geo %in% c("FR", "DE", "IT", "EA20"),
         unit == "THS_PER",
         s_adj == "NSA",
         na_item == "POP_NC") |>
  
  quarter_to_date() |>
  group_by(geo) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
  left_join(colors, by = c( "Geo" = "country")) |>
  ggplot() + ylab("Population") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + add_flags +
  scale_x_date(breaks = seq(1909, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Geo) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = color), show.legend = F)

1999-

Code
namq_10_pe |>
  filter(geo %in% c("FR", "DE", "IT", "EA20"),
         unit == "THS_PER",
         s_adj == "NSA",
         na_item == "POP_NC") |>
  
  quarter_to_date() |>
  filter(date >= as.Date("1999-01-01")) |>
  group_by(geo) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
  left_join(colors, by = c( "Geo" = "country")) |>
  ggplot() + ylab("Population") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + add_flags +
  scale_x_date(breaks = seq(1909, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Geo) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = color), show.legend = F)

2001-2021

Code
namq_10_pe |>
  filter(geo %in% c("FR", "DE", "IT", "EA20"),
         unit == "THS_PER",
         s_adj == "NSA",
         na_item == "POP_NC") |>
  
  quarter_to_date() |>
  filter(date >= as.Date("2001-01-01"),
         date <= as.Date("2021-01-01")) |>
  group_by(geo) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
  left_join(colors, by = c( "Geo" = "country")) |>
  ggplot() + ylab("Population") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + add_flags +
  scale_x_date(breaks = seq(1909, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Geo) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = color), show.legend = F)

France Evolution

Max -

NSA

Code
namq_10_pe |>
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "NSA") |>
  
  quarter_to_date() |>
  group_by(na_item) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  ggplot() + ylab("Indice des prix, Ensemble") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1909, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item), show.legend = F)

SA

Code
namq_10_pe |>
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "SA") |>
  
  quarter_to_date() |>
  #filter(date >= as.Date("1999-01-01")) %>%
  group_by(na_item) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1979, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item))

1999 -

NSA

Code
namq_10_pe |>
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "NSA") |>
  
  quarter_to_date() |>
  filter(date >= as.Date("1999-01-01")) |>
  group_by(na_item) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  ggplot() + ylab("Indice des prix, Ensemble") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1999, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item))

SA

Code
namq_10_pe |>
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "SA") |>
  
  quarter_to_date() |>
  filter(date >= as.Date("1999-01-01")) |>
  group_by(na_item) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1999, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item))

2001-2021

NSA

Code
namq_10_pe |>
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "NSA") |>
  
  quarter_to_date() |>
  filter(date >= as.Date("2001-01-01"),
         date <= as.Date("2021-01-01")) |>
  group_by(na_item) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  ggplot() + ylab("Indice des prix, Ensemble") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1999, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item), show.legend = F)

SA

Code
namq_10_pe |>
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "SA") |>
  
  quarter_to_date() |>
  filter(date >= as.Date("2001-01-01"),
         date <= as.Date("2021-01-01")) |>
  group_by(na_item) |>
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(2001, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item))