import pandas as pd
pd.set_option('display.width', 200)
pd.set_option('display.max_columns', 15)
pd.set_option('display.max_rows', 100)
pd.set_option('display.min_rows', 100)
pd.set_option('display.max_seq_items', 100)
DATA = 'https://pl.wikipedia.org/wiki/Lista_reaktor%C3%B3w_j%C4%85drowych'
MONTHS_PLEN = {
'stycznia': 'January',
'lutego': 'February',
'marca': 'March',
'kwietnia': 'April',
'maja': 'May',
'czerwca': 'June',
'lipca': 'July',
'sierpnia': 'August',
'września': 'September',
'października': 'October',
'listopada': 'November',
'grudnia': 'December',
}
COLUMNS = [
'nazwa',
'rozpoczecie_budowy',
'wlaczenie_do_sieci',
'roznica_lata',
'moc_netto',
]
result = (pd
.read_html(DATA)[1]
.query('Status == "W eksploatacji"')
.rename(columns={'Elektrownia / Nazwa bloku': 'nazwa'})
.assign(
rozpoczecie_budowy=lambda df: df['Rozpoczęcie budowy'].replace(MONTHS_PLEN, regex=True).map(pd.to_datetime),
wlaczenie_do_sieci=lambda df: df['Włącz. do sieci'].replace(MONTHS_PLEN, regex=True).map(pd.to_datetime),
roznica_dni=lambda df: df['wlaczenie_do_sieci'] - df['rozpoczecie_budowy'],
roznica_lata=lambda df: df['roznica_dni'] / pd.Timedelta(days=365.25),
year=lambda df: df['rozpoczecie_budowy'].dt.year,
moc_netto=lambda df: df['Moc elektryczna (netto / brutto)'].str.split('/', expand=True)[0],
moc_brutto=lambda df: df['Moc elektryczna (netto / brutto)'].str.split('/', expand=True)[1],
)
.replace({
'moc_netto': {' MWe': ''},
'moc_brutto': {' MWe': ''}
}, regex=True)
.round({'roznica_lata': 1})
.astype({
'moc_netto': 'int64',
'moc_brutto': 'int64',
}, errors='ignore')
.convert_dtypes()
.loc[:, COLUMNS]
)
# Polska Elektrownia Jądrowa
# 3 750 MWe