<jupyter_start><jupyter_text>Template untuk mengecek database sarana/bangwas khusus kepemilikan PT KAI - hanya menampilkan data dengan status Aktiv/SG- rekap per jenis dan per daop- bisa ekspor rekap ke csv/excel- cara pemakaian tinggal ganti dataset pada line 1 sesuaikan dengan dataset yg akan di cek (dataset tanpa header)- bandingkan dengan rekap yg dikirim oleh data aset milik PT KAI(jika ada selisish kroscek kembali)<jupyter_code>import pandas as pd
colnames=['id', 'kode_sarana', 'kode_sarana_lama', 'id_kartu', 'id_jenis', 'id_sub_jenis', 'seri', 'tahun_dinas', 'id_daops', 'id_depo', 'status', 'negara_asal', 'tgl_uji_pertama', 'tgl_masa_uji', 'tgl_masa_perawatan', 'pabrikan', 'id_pemilik', 'created_at', 'last_update' ] 
df_sarana = pd.read_csv('../data_source/datsar/tblsarana_update_juni2021.csv', sep=';' ,names=colnames)
df_sarana.head()
col_daop =['id', 'nama_daop'] 
df_daop = pd.read_csv('../data_source/datsar/tbldaops.csv', names=col_daop, usecols=['id', 'nama_daop'])
df_daop.head()
join_df2 = df_sarana.set_index('id_daops').join(df_daop.set_index('id'), how='left')
print(join_df2.head())
def transform_data(jenis_sarana):
    if jenis_sarana == 1 :
        jenis_sarana = 'Lokomotif'
    elif jenis_sarana == 2 :
        jenis_sarana = 'KRL'
    elif jenis_sarana == 3 :
        jenis_sarana = 'KRD'
    elif jenis_sarana == 4 :
        jenis_sarana = 'Gerbong'
    elif jenis_sarana == 9 :
        jenis_sarana = 'Peralatan Khusus'
    elif jenis_sarana == 11 :
        jenis_sarana = 'Kereta'
    elif jenis_sarana == 19 :
        jenis_sarana = 'RailBus'
    else :
        jenis_sara = 'undefined'
        
    return jenis_sarana 
join_df2['id_jenis'] = join_df2['id_jenis'].apply(lambda x: transform_data(x))
join_df2 = join_df2.rename(columns={"id_jenis": "jenis_sarana"})
print(join_df2.head())
data_kai = join_df2.loc[(join_df2["status"] == "Aktiv") & (join_df2["id_pemilik"] == 2)]
data_kai['id_pemilik'].nunique()
jumlah_sarana = data_kai.groupby(['jenis_sarana', 'nama_daop'])['kode_sarana'].count().reset_index()
print(jumlah_sarana)
pivot_sarana = jumlah_sarana.pivot_table(index=['jenis_sarana'], columns='nama_daop')
print(pivot_sarana)
pivot_sarana.fillna(0, inplace=True)
print(pivot_sarana)
pivot_sarana.dtypes
pivot_sarana.columns
pivot_sarana = pivot_sarana.astype('int64')
pivot_sarana.dtypes
pivot_sarana
pivot_sarana.columns = pivot_sarana.columns.droplevel(0)
pivot_sarana
pivot_sarana.index
pivot_sarana.sum()
pivot_sarana.sum(axis =1)
pivot_sarana['TOTAL']=pivot_sarana.sum(axis =1)
pivot_sarana
total = pivot_sarana.sum()
print(total)
rekap_sarana = pivot_sarana.append(total, ignore_index=True)
rekap_sarana
#membuat sub total di bagian bawah, namun index jenis akan dihapus diganti dengan index nomor urut 1,2, dst, (sesuaikan tabel yang dibuat dg tabel pivot_sarana)
pivot_sarana
rekap_sarana
#pivot_sarana.to_csv('data_source/datsar/rekap_kai.csv', sep=',')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1293718166383701, 'fraction_numerical': 0.011205432937181663, 'mean_word_length': 5.915492957746479, 'pattern_counts': {'":': 1, '<': 5, '<?xml version=': 0, '>': 5, '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': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '647521', 'license': 'MIT', 'n_tokens_mistral': 1340, 'n_tokens_neox': 1241, 'n_words': 219, 'path': 'Latihan/Sinkronisasi Data Sarana/cek_rekapitulasi_kai.ipynb', 'repo_name': 'cktheone/DQLab', 'size': '2945'}