Journey Install Pandoc di Armbian
Ok, ini adalah catatan penting. Tak lain adalah karena saya membuat buku dan saya ingin kemudahan.
Agar sebuanya menjadi mudah maka saya harus melakukan hal sbb:
- Menulis buku dengan format Markdown. Saya menggunakan software MarkText di Windows untuk urusan kemudahan.
- Saya harus menyatukan text menggunakan Python. File yang sebelumnya bab 1, bab 2 menjadi satu fike saja.
- Saya harus menginstall Pandoc agar file saya yang berakhiran .md itu bisa menjadi buku format buku. Bagian ini yang menantang dan akan saya ceritakan di bawah.
Install Pandoc
Karena Pandoc berbasis command line, dan saya agak kesulitan menggunakannya di windows, maka saya memutuskan untuk saya install di Linux (lebih tepatnya armbian), berbekal dengan perintah yang saya dapatkan di blog Mas Endy yang dulu pernah ketemu di Enciety.
sudo apt-get install pandoc texlive-latex-base texlive-xetex latex-beamer
Dan hasilnya error karena latex-beamer tidak ada. Ok saya buang dulu aja latex-beamer yang gunanya buat presentasi, dan saya belum membutuhkannya.
sudo apt-get install pandoc texlive-latex-base texlive-xetex
Berhasil
Menggunakan Pandoc
Kemudian saya coba untuk konversi markdown ke PDF
pandoc -N --variable "geometry=margin=1.2in" --variable fontsize=12pt --variable version=1.0 --toc -o SQL4BusinessAnalist.pdf SQL4BusinessAnalist.md
Okey berhasil dengan format buku standard
Menggunakan Style
Karana saya ingin lebih, maka saya ingin menggunakan format Eisfogel tapi ternyata error…
"template" (line 483, column 16): unexpected "/" expecting "." or ")$"
Bagian ini kemudian saya hapus
$for(babelfonts/pairs)$
\babelfont[$babelfonts.key$]{rm}{$babelfonts.value$}
$endfor$
Masih error om
Error producing PDF. ! LaTeX Error: File `sourcesanspro.sty' not found. Type X to quit or to proceed, or enter new name. (Default extension: sty) Enter file name: ! Emergency stop.
l.179 \usepackage
Akhirnya saya install ini
sudo apt-get install texlive-fonts-recommended texlive-fonts-extra
Akhirnya berhasil.
Dan kita run perintah sbb:
pandoc -N "result.md" -o "document1.pdf" --from markdown --template "../pandoc-template/eisvogel.tex" --listings
Itu dulu catatan hari ini nanti kalau ada perkembangan saya update Awokwokwokwok…
Merge Beberapa File Markdown ke Satu File
Saya mempunyai beberapa file markdown yang ingin saya satukan ke dalam satu file. Berikut skripnya:
import glob
read_files = glob.glob("*.md")
with open("result.md", "wb") as outfile:
for f in read_files:
with open(f, "rb") as infile:
outfile.write(infile.read())
Skrip Python ini menggunakan modul glob untuk mencari file-file dengan ekstensi .md dalam direktori kerja saat ini. Setelah itu, skrip membuka file dengan nama “result.txt” untuk menulis (mode “wb” atau write binary).
Selanjutnya, skrip menggunakan loop for untuk membaca setiap file yang telah ditemukan oleh glob dan menggabungkannya ke dalam file “result.md”. Ini dilakukan dengan membuka setiap file yang ditemukan dalam mode baca binary (“rb”) dan menuliskan isinya ke dalam file “result.md” menggunakan metode write() pada objek file keluaran.
Mari kita bahas baris per baris:
import glob: Mengimpor modulglobyang menyediakan fungsi untuk mencocokkan pola dan mencari file dalam direktori.read_files = glob.glob("*.md"): Menggunakan fungsiglob.glob()untuk mencocokkan semua file dengan ekstensi.mddalam direktori kerja saat ini. Hasilnya disimpan dalam variabelread_files, yang berisi daftar nama file yang sesuai.with open("result.md", "wb") as outfile:: Membuka file dengan nama “result.md” dalam mode write binary (“wb”). Ini digunakan untuk menulis data dalam mode biner.for f in read_files:: Memulai loopforuntuk setiap file yang ditemukan.with open(f, "rb") as infile:: Membuka setiap file dalam mode read binary (“rb”). File ini akan dibaca.outfile.write(infile.read()): Membaca seluruh konten dari file yang dibuka (infile.read()) dan menulisnya ke dalam file “result.md” yang juga telah dibuka sebelumnya (outfile.write()).- Karena digunakan mode binary (“wb” dan “rb”), ini cocok untuk menangani file teks atau file biner.
Dengan demikian, skrip ini menggabungkan isi semua file Markdown dengan ekstensi “.md” dalam direktori kerja ke dalam satu file yang disebut “result.md”.
Menangani Spasi pada Kolom dan Value DataFrame
Ketika pandas melakukan pembacaan data dari excel atau CSV, sering kali pada nama kolom dan data terdapat spasi atau karakter tak terlihat pada sebelum dan sesudahnya.
Dan ini sangat merepotkan data scientis, karena ketika memanggil df[‘nama’] ternyata data tidak muncul hanya karena spasi sehingga baru muncul ketika dipanggil dengan df[‘nama ‘]. Sangat mengganggu. Oleh sebab itu harus dilakukan 2 langkah untuk memebereskan hal ini.
# Import Library
import pandas as pd
# open file from excel to dataframe
file = "sample_data/STUDI KASUS - SIMULASI RETAIL.xlsx"
df = pd.read_excel(file, sheet_name=0)
# Membuang spasi sebelum dan sesudah nilai
# strip columns
df.rename(columns=lambda x: x.strip(), inplace=True)
# strip data value yang tipenya object/string
df_obj = df.select_dtypes(['object'])
df[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())
# dari df[df['Tanggal_Pembelian '] == ' 2022-01-03 '] menjadi
df[df['Tanggal_Pembelian'] == '2022-01-03']
Konversi Excel ke SQLite dengan Google Collab
Masih seperti sebelumnya, ini adalah cara paling praktis untuk melakukan konversi Excel ke SQLite menggunakan google Collabs
Mount Drive
# mount drive
from google.colab import drive
drive.mount('/content/drive')
Buka Excel dan Konversi ke sqlite
#import library
import pandas as pd
import sqlite3
#open file from excel to dataframe
file = "/content/drive/MyDrive/Colab Notebooks/STUDI KASUS - SIMULASI RETAIL.xlsx"
df = pd.read_excel(file, sheet_name=0)
#create database and connect it
database = "/content/drive/MyDrive/Colab Notebooks/retail_fromxlsx.sqlite3"
conn = sqlite3.connect(database)
#save data to sqlite
df.to_sql(name='retail', con=conn)
conn.close()

