Baby Names

zip
categorical
continuous
visualization
usa
Джерело: SSN Office
Автор

Ігор Мірошниченко

Дата публікації

2024-05-03

Дані

Опис даних:

Всі імена взяті із заяв на отримання карток соціального страхування для дітей, які народилися в США після 1879 року. Зверніть увагу, що багато людей, народжених до 1937 року, ніколи не зверталися за карткою соціального страхування, тому їхні імена не включені в дані.

Задля конфіденційності, якщо ім’я зустрічається менше 5 разів за рік у певному штаті, такі записи виключені з вибірки.

Усі дані взяті зі 100% вибірки записів про заяви на отримання карток соціального страхування станом на березень 2022 року.

'https://raw.githubusercontent.com/Aranaur/aranaur.rbind.io/main/datasets/babynames/names.zip'
Name Sex Count Year
0 Mary F 7065 1880
1 Anna F 2604 1880
2 Emma F 2003 1880
3 Elizabeth F 1939 1880
4 Minnie F 1746 1880
... ... ... ... ...
31910 Zuberi M 5 2022
31911 Zydn M 5 2022
31912 Zylon M 5 2022
31913 Zymeer M 5 2022
31914 Zymeire M 5 2022

2085158 rows × 4 columns

Завантаження даних

library(tidyverse)
library(vroom)

# Завантаження даних безпосередньо з Інтернету
data_url <- "https://raw.githubusercontent.com/Aranaur/aranaur.rbind.io/main/datasets/babynames/names.zip"
local_filename <- "babynames.zip"
if (!file.exists(local_filename)) { # якщо дані існують, не завантажувати знову
  download.file(data_url, local_filename, mode = "wb")
}

data_files <- unzip(local_filename, junkpaths = TRUE, exdir = tempdir())

babynames <- list()
for (i in data_files) {
  df <- vroom(i, col_names = c("Name", "Sex", "Count"), show_col_types = FALSE) %>% 
    mutate(Year = str_match(i, "yob(\\d{4})\\.txt")[, 2] %>% 
             as.numeric())
  babynames <- bind_rows(babynames, df)
}
import pandas as pd
import urllib.request
import os.path
import zipfile

# Завантажуємо дані безпосередньо з інтернету
data_url = "https://raw.githubusercontent.com/Aranaur/aranaur.rbind.io/main/datasets/babynames/names.zip"
local_filename = "babynames.zip"
if not os.path.exists(local_filename): # якщо дані існують, не завантажувати знову
    with urllib.request.urlopen(data_url) as resp, open(local_filename, 'wb') as f:
        f.write(resp.read())

babynames = [] 
with zipfile.ZipFile(local_filename, "r") as zf:
    data_files = [f for f in zf.filelist if f.filename[-3:] == "txt"]
    def extract_year_from_filename(fn):
        return int(fn[3:7])
    for f in data_files:
        year = extract_year_from_filename(f.filename)
        with zf.open(f) as fp:
            df = pd.read_csv(fp, names=["Name", "Sex", "Count"])
            df["Year"] = year
            babynames.append(df)
babynames = pd.concat(babynames)