Skip to content

Commit

Permalink
Forbedret kode
Browse files Browse the repository at this point in the history
Både foretak og virksomheter med i rapportene for SFU og VOF
Max 30 tegn som arkfanenavn i Excel
La til KARAKTERISTIKK i VOF (enklere å se hva slags virksomhet det er)
Forbedret arkfanenavn (mer konkret)
  • Loading branch information
mfmssb committed Sep 18, 2023
1 parent 2b1ea4c commit 69ac49a
Showing 1 changed file with 18 additions and 29 deletions.
47 changes: 18 additions & 29 deletions experimental/nytt_delregister_24xx.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ def lagre_excel(dfs, sti):
engine="openpyxl",
) as writer:
for arknavn in dfs:
if len(arknavn) >= 30:
print("\t Arkfanenavnet ", arknavn, "er for langt. (Max 30 tegn i Excel)")
dfs[arknavn].to_excel(writer, sheet_name=arknavn, index=False)
print(f"Arkfanen '{arknavn}' er lagret i filen.")

Expand Down Expand Up @@ -217,19 +219,13 @@ def lagre_excel(dfs, sti):

ut = SFU_priv[SFU_priv['ORGNR'].isin(orgnr_priv_ikke_sfu)][['ORGNR', 'NAVN', 'SN07_1', 'STATUS', 'TILSTAND']]

rapportsamling['priv. med i 2087722, ikke 2423'] = ut

# +
# SFU_priv = SFU_priv[~SFU_priv['ORGNR'].isin(orgnr_priv_ikke_sfu)] # for å ta ut de som ikke er 2423
# -
rapportsamling['priv. i 2087722, ikke 2423'] = ut

orgnr_foretak_priv_sfu = list(SFU_priv['ORGNR']) # liste over private virksomheter som ligger i SFU

# ## VOF: liste over alle helseforetak

rapporteringsenheter_uten_RHF = rapporteringsenheter.query('~NAVN_KLASS.str.endswith("RHF")', engine="python")

r_orgnr = rapporteringsenheter_uten_RHF.ORGNR_FORETAK.to_numpy()
r_orgnr = rapporteringsenheter.ORGNR_FORETAK.to_numpy()


def lag_sql_str(arr):
Expand Down Expand Up @@ -275,7 +271,8 @@ def lag_sql_str(arr):
SN07_1,
SN07_2,
SN07_3,
STATUSKODE
STATUSKODE,
KARAKTERISTIKK
FROM DSBBASE.SSB_BEDRIFT
WHERE FORETAKS_NR IN {sql_str}
"""
Expand All @@ -292,7 +289,8 @@ def lag_sql_str(arr):
SN07_1,
SN07_2,
SN07_3,
STATUSKODE
STATUSKODE,
KARAKTERISTIKK
FROM DSBBASE.SSB_BEDRIFT
WHERE FORETAKS_NR IN {sql_str_foretak_uten_priv}
"""
Expand All @@ -308,7 +306,7 @@ def lag_sql_str(arr):
vof_for.sample(1)

vof = pd.concat([vof_for, vof_bdr])
vof_uten_private = pd.concat([vof_for, vof_bdr_uten_private])
vof_uten_private = pd.concat([vof_for_uten_priv, vof_bdr_uten_private])

print(vof.shape)
print(vof_uten_private.shape)
Expand Down Expand Up @@ -342,22 +340,13 @@ def lag_sql_str(arr):
SFU_enhet['SPES_NAVN'].fillna("") + " "
).str.replace(r'\s+', ' ', regex=True)

# +
# Tar ut foretak i SFU
mask = SFU_enhet['ORGNR_FORETAK'] == SFU_enhet['ORGNR']

SFU_virk = SFU_enhet[~mask].copy()
# -

SFU_virk.shape

felles_variabelnavn = [x for x in vof.columns if x in SFU_virk.columns]
felles_variabelnavn = [x for x in vof.columns if x in SFU_enhet.columns]

felles_variabelnavn

vof_tilstand = vof[felles_variabelnavn + ['STATUSKODE']].copy()
vof_tilstand_uten_private = vof_uten_private[felles_variabelnavn + ['STATUSKODE']].copy()
SFU_tilstand = SFU_virk[felles_variabelnavn + ['STATUS', 'NAVN_HEL_SFU']].copy()
vof_tilstand = vof[felles_variabelnavn + ['STATUSKODE', 'KARAKTERISTIKK']].copy()
vof_tilstand_uten_private = vof_uten_private[felles_variabelnavn + ['STATUSKODE', 'KARAKTERISTIKK']].copy()
SFU_tilstand = SFU_enhet[felles_variabelnavn + ['STATUS', 'NAVN_HEL_SFU']].copy()

SFU_tilstand.shape

Expand All @@ -378,7 +367,7 @@ def lag_sql_str(arr):

ut = SFU_tilstand[SFU_tilstand['ORGNR'].isin(orgnr_i_SFU_ikke_VOF)][['ORGNR', 'NAVN', 'STATUS']]

rapportsamling['enheter ikke i VOF'] = ut
rapportsamling['i 24, ikke klass eller 20778'] = ut

# ### Sammenlikne virksomheter: VOF -> SFU

Expand All @@ -388,9 +377,9 @@ def lag_sql_str(arr):
print("men som ikke har match i SFU:")
vof_tilstand[vof_tilstand.ORGNR.isin(orgnr_i_VOF_ikke_SFU)].shape[0]

ut = vof_tilstand[vof_tilstand['ORGNR'].isin(orgnr_i_VOF_ikke_SFU)][['ORGNR', 'NAVN', 'STATUSKODE', 'SN07_1']]
ut = vof_tilstand[vof_tilstand['ORGNR'].isin(orgnr_i_VOF_ikke_SFU)][['ORGNR', 'NAVN', 'KARAKTERISTIKK', 'STATUSKODE', 'SN07_1']]

rapportsamling['enheter ikke i SFU'] = ut
rapportsamling['i klass og 20778, ikke i 24'] = ut

# ### Sammenlikne virksomheter: SFU -> VOF (uten private)

Expand All @@ -405,10 +394,10 @@ def lag_sql_str(arr):
vof_tilstand_uten_private['ORGNR']
.isin(orgnr_i_VOF_ikke_SFU_uten_private)
]
[['ORGNR', 'NAVN', 'STATUSKODE', 'SN07_1']]
[['ORGNR', 'NAVN', 'KARAKTERISTIKK', 'STATUSKODE', 'SN07_1']]
)

rapportsamling['enheter ikke i SFU (u. priv)'] = ut
rapportsamling['i klass, ikke i 24xx'] = ut

# ### Private som ikke har missing på HVAR_1_A i SFU:
# Det betyr at det rapporteres tall fra dem på skjema 39?
Expand Down

0 comments on commit 69ac49a

Please sign in to comment.