<jupyter_start><jupyter_text>new data<jupyter_code>df = pd.read_csv('data/data_from_report.csv', sep='\t')
df.columns = ['source', 'sphere', 'scenario', 'Y2012', 'Y2015', 'Y2020', 'Y2025', 'Y2030',
       'Y2035', 'Y2040', 'Y2045', 'Y2050']
df = pd.wide_to_long(df, stubnames='Y', i=['source', 'sphere', 'scenario'], j='year').reset_index()
df.columns = ['source', 'sphere', 'scenario', 'year', 'ktne']

df = df.loc[df.source != 'Всього'].copy()
totals = df.loc[df.sphere == 'загалом'].copy()
df = df.loc[df.sphere != 'загалом'].copy()

new_total = df.groupby(['source', 'scenario', 'year'], as_index=False).ktne.sum()
new_total['sphere'] = 'загалом'
df = pd.concat([df, new_total], ignore_index=True, sort=False)
# df.to_csv('data_report_longest.csv', index=False)
df = pd.read_csv('data/data_report_longest.csv')
df = df.loc[df.scenario != 'Ліберальний']
df.sort_values('ktne', ascending=False)
df.loc[739,]
is_vde = dict(zip(
    df.source.drop_duplicates().values,
    ['vde', 'vde', 'vde', 'dirt', 'dirt', 'dirt', 'dirt', 'dirt', 'vde',]
))
# df.loc[1171, 'ktne'] = 10233
# df.loc[739, 'ktne'] = 10233
df['by_vde'] = df.source.apply(lambda s: is_vde[s])
df_dy_vde = df.groupby(['sphere', 'scenario', 'year', 'by_vde',], as_index=False
          ).ktne.sum()

df_dy_vde.to_csv('data/by_vde.csv', index=False)
df.loc[(df.scenario == 'Революційний') & (df.year == 2015) & (df.sphere == 'промисловість')]
def reshape_df(d):
    new = d.pivot('year', 'sphere', 'ktne').reset_index()
    new['by_vde'] = d.by_vde.iloc[0]
    new['scenario'] = d.scenario.iloc[0]
    return new

vde_wide = df_dy_vde.groupby(['year', 'by_vde', 'scenario'], as_index=False
          ).apply(reshape_df
          ).reset_index(drop=True
          ).fillna(0)

vde_wide.columns = [s.capitalize() if (i > 0 and i < 7) else s for i, s in enumerate(vde_wide.columns)]
vde_wide.to_csv('data/by_vde_wide.csv', sep=',', index=False)
df_dy_vde.sort_values('ktne', ascending=False)
def reshape_df(d):
    new = d.pivot('year', 'sphere', 'ktne').reset_index()
    new['source'] = d.source.iloc[0]
    new['scenario'] = d.scenario.iloc[0]
    return new

df.groupby(['year', 'source', 'scenario'], as_index=False
          ).apply(reshape_df
          ).reset_index(drop=True
          ).fillna(0
          ).to_csv('data/data_report_wide.csv', sep=',', index=False)
df.groupby(['year', 'source', 'scenario'], as_index=False
          ).apply(reshape_df
          ).reset_index(drop=True
          ).fillna(0)
df = pd.read_csv('data/data_report_wide.csv')
df.columns = [s.capitalize() if i > 2 else s for i, s in enumerate(df.columns)]
df.to_csv('data/data_report_wide.csv', sep=',', index=False)
df['Загалом'].idxmax()
df.loc[37, ]<jupyter_output><empty_output><jupyter_text>parse costs<jupyter_code>import re
with open('costs_to_parse.txt') as f:
    costs = f.read()

costs = re.sub('\s{2,}|\s+(?<=\d)|\s+(?=\d)', '\n', costs)

scens = re.split('\s*-{3,}\s*', costs)

snames = ['Консервативний', 'Ліберальний', 'Революційний']

sdfs = [];

for i, s in enumerate(scens):
    sdf = pd.DataFrame(list(map(lambda r: r.strip().split('\n'), re.findall('[^0-9]+[^А-яЄєЇїІіҐґ]+', s))))
    sdf['scenario'] = snames[i]
    sdfs.append(sdf)
    
sdf = pd.concat(sdfs, ignore_index=True, sort=False
       ).replace({'-': 0})

sdf.columns = ['action', 'Y2012', 'Y2015', 'Y2020', 'Y2025', 'Y2030', 'Y2035', 'Y2040', 'Y2045', 'Y2050', 'scenario']

sdf = pd.wide_to_long(sdf, stubnames='Y', i=['action', 'scenario',], j='year').reset_index()

sdf.columns = ['action', 'scenario', 'year', 'm_euro']
# sdf.to_csv('costs.csv', index=False)
df = pd.read_csv('data/costs.csv')
df = df.loc[(df.scenario != 'Ліберальний')]

new_actions = [
    'Вартість палива',
    'Капітальні інвестиції',
    'Капітальні інвестиції',
    'Капітальні інвестиції',
    'Транспортування, постачання та проміжні технології',
    'Експлуатаційні витрати',
    'Експлуатаційні витрати',
    'Субсидії («зелений» тариф)',
]

new_actions = dict(zip(df.action.drop_duplicates().values, new_actions))
df.action = df.action.apply(lambda a: new_actions[a])

df = df.groupby(['action', 'scenario', 'year',], as_index=False).m_euro.sum()

# df.to_csv('data/costs_agg.csv', index=False)

def groupcosts(d):
    res = d.pivot('scenario', 'year', 'm_euro')
    res['action'] = d.iloc[0, 0]
    return res

df.groupby(['action', 'scenario',], as_index=False
          ).apply(groupcosts
          ).reset_index(1
          ).drop(2012, axis=1
          ).to_csv('data/costs_agg_wide.csv', index=False)
len('енергоспоживання')
new_actions
df.columns<jupyter_output><empty_output><jupyter_text>eresources<jupyter_code>df = pd.read_excel('data/eresources.xlsx'
                  ).melt(id_vars=['source', 'scenario'],
                         value_vars=list(range(2015, 2055, 5)),
                         var_name='year',
                         value_name='Базовий',
                  ).sort_values(['scenario', 'year', 'source']
                  ).reset_index(drop=True)

df['Революційний'] = df.loc[int(len(df) / 2):, 'Базовий'].reset_index(drop=True)
df.source = df.source.str.strip()
df.dropna(axis=0).drop('scenario', axis=1).to_csv('data/eresources_long.csv', index=False)
df = pd.read_csv('data/eresources_long.csv')
df = pd.read_excel('data/eresources.xlsx'
                  ).melt(id_vars=['source', 'scenario'],
                         value_vars=list(range(2015, 2055, 5)),
                         var_name='year',
                         value_name='ktne',
                  ).sort_values(['scenario', 'year', 'source']
                  ).reset_index(drop=True)

def widen(d):
    new = d[['source', 'ktne']].set_index('source').T
    new['year'] = d.year.iloc[0]
    new['scenario'] = d.scenario.iloc[0]
    return new
df.groupby(['scenario', 'year'], as_index=False
          ).apply(widen
          ).reset_index(drop=True
          ).to_csv('data/eresources_wide.csv', index=False)
pd.read_csv('data/eresources_wide.csv')
df.loc[~df.source.str.match('Імпор|Всього')].groupby(['year'], as_index=False).sum().max()
df.loc[df.year == 2015].groupby('source', as_index=False
           )['Базовий'].sum().sort_values('Базовий', ascending=False
                      )['source'].values.tolist()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.20527156549520767, 'fraction_numerical': 0.023642172523961662, 'mean_word_length': 3.857253685027153, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '605973', 'license': 'Apache-2.0', 'n_tokens_mistral': 2599, 'n_tokens_neox': 2558, 'n_words': 380, 'path': 'reshape_data.ipynb', 'repo_name': 'NadiaRom/ecoaction', 'size': '6260'}