Population and employment
Data - Eurostat
Info
Last observation: Quarterly: 2026Q2 (N = 128)
First observation: Quarterly: 1980Q1 (N = 8)
Last data update: 11 aoû 2026, 21:34. Last compile: 12 aoû 2026, 02:16
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()| geo | Geo | Unit | s_adj | S_adj | PCH_PRE_PER | PCH_SM_PER | THS_PER |
|---|---|---|---|---|---|---|---|
| ES | Spain | Percentage change compared to same period in previous year (based on persons) | NSA | Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) | NA | 1.0 | NA |
| NL | Netherlands | Percentage change compared to same period in previous year (based on persons) | NSA | Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) | NA | 0.4 | NA |
| ES | Spain | Percentage change compared to same period in previous year (based on persons) | SCA | Seasonally and calendar adjusted data | NA | 1.0 | NA |
| NL | Netherlands | Percentage change compared to same period in previous year (based on persons) | SCA | Seasonally and calendar adjusted data | NA | 0.4 | NA |
| ES | Spain | Percentage change on previous period (based on persons) | SCA | Seasonally and calendar adjusted data | 0.2 | NA | NA |
| NL | Netherlands | Percentage change on previous period (based on persons) | SCA | Seasonally and calendar adjusted data | 0.0 | NA | NA |
| ES | Spain | Thousand persons | NSA | Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) | NA | NA | 49737.05 |
| NL | Netherlands | Thousand persons | NSA | Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) | NA | NA | 18135.00 |
| ES | Spain | Thousand persons | SCA | Seasonally and calendar adjusted data | NA | NA | 49737.05 |
| NL | Netherlands | Thousand persons | SCA | Seasonally and calendar adjusted data | NA | NA | 18135.00 |
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))