Python — generátor náhodných dat

python numpy pandas csv excel clipboard

Vygenerujte si náhodná data v Pythonu. S malou pomocí numpypandas to jde snadno, rychle a budete k tomu potřebovat jen pár řádků.

Výsledná data si uložíte do textového souboru (CSV), do Excelu a také si je rovnou zkopírujete do schránky pomocí CTRL-V nebo na Macu ⌘-V.

Tento článek navazuje na návod, který jsme zveřejnili nedávno. Ukazovali jsme v něm, jak generovat náhodná data pomocí SQL. Python ve srovnání s SQL nabízí ještě víc možností, jak se s tímto úkolem poprat.

My jsme vybrali knihovny numpypandas, protože jsou v datové vědě (Data Science) hodně používané. Určitě neuškodí se jim trochu podívat pod pokličku.

Import knihoven

Naimportujeme knihovny, které budeme potřebovat.

import numpy as np
import pandas as pd
from datetime import date

Nastavení

Proměnné, pomocí kterých můžeme snadno měnit výsledná data.

# Nastavení
pocet_radku = 100
pocet_znaku = 10
pocatecni_datum = date.today()

Vytvoření dat

Pomocí knihovny numpy vytvoříme 3 pole, která obsahují náhodná data.

# Vytvoření dat
cisla = np.random.randint(low=100, high=1001,
                          size=pocet_radku)              # čísla 100-1000
znaky = np.random.randint(low=65, high=91,
                          size=pocet_radku*pocet_znaku,
                          dtype='int32'
                          ).view(f"U{pocet_znaku}")      # znaky A-Z
datumy = np.datetime64(pocatecni_datum,'D') - cisla      # datumy

Pokud vám vrtá hlavou, proč při generování proměnné znaky používáme čísla 65-90, zkuste si v Pythonu příkaz chr(65).

Vytvoření DataFrame

Abychom si mohli data snadno uložit v různých formátech.

# Vytvoření DataFrame
df = pd.DataFrame(data={'číslo': cisla,
                        'řetězec': znaky,
                        'datum': datumy})

Uložení do CSV, Excel a Clipboardu

Nejběžnější formáty. Každý si vybere. 😉

# CSV, Excel, Clipboard
df.to_csv('lovely-data.csv', index=False)
df.to_excel('lovely-data.xlsx', index=False)
df.to_clipboard(index=False)

print('Hotovo')
číslo řetězec     datum
525   ZSQGBLVRZL  2019-08-07
352   PQZKCQGTKN  2020-01-27
251   CAEAWDGNKM  2020-05-07
208   LDAKNBBLYT  2020-06-19
776   CIJWQECSBN  2018-11-29
...   ..........  ..........

Ke stažení

Kompletní program si můžete stáhnout jako soubor.

LovelyData

Jste z oboru a máte co říct?

Nenechávejte si to pro sebe a publikujte na Lovely Blogu.

Odběr novinek

Novinky, návody, kurzy a exkluzivní slevy. Získejte informace jako první. Stačí jen zadat e-mail. Je to zdarma a odhlásit se můžete kdykoliv.

Copyright © 2018-2021, Colorbee, s.r.o.

Design by grafikli.cz

Používáme cookies pro lepší uživatelský zážitek. Používáním webu s tím vyjadřujete souhlas a zároveň potvrzujete, že jste se seznámil/a s Prohlášením o ochraně osobních údajů.

Fotografie: lektoři, grafikli.cz, icons8.com