Pemrograman Python dengan File Data: CSV, Excel, dan JSON
1. Dasar-Dasar Python untuk CSV, Excel, dan JSON
CSV (Comma-Separated Values) adalah format teks yang digunakan untuk menyimpan data dalam tabel, di mana setiap baris adalah satu catatan dan setiap catatan terdiri dari satu atau lebih bidang yang dipisahkan oleh koma.
Excel adalah aplikasi spreadsheet yang menggunakan format file khusus seperti .xlsx
untuk menyimpan data dalam bentuk tabel yang lebih kompleks.
JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca, dan ditulis oleh manusia serta mudah diurai dan dihasilkan oleh mesin.
CSV:
- Struktur sederhana: data dipisahkan oleh koma (atau pemisah lain)
- Mudah dibaca manusia dan mesin
- Tidak mendukung tipe data kompleks atau formula
Excel:
- Dapat menyimpan data kompleks, formula, dan banyak sheet
- Mendukung format sel dan tipe data yang beragam
- Ukuran file lebih besar dibanding CSV
JSON:
- Berbasis struktur key-value
- Mendukung tipe data nested
- Sering digunakan dalam API web dan konfigurasi
2. Membaca dan Menulis File CSV
Membaca CSV:
contoh 1
python
import csvwith open('data.csv', 'r') as file:reader = csv.reader(file)for row in reader:print(row)contoh 2
pythonimport csv def read_csv(file_path): data = [] with open(file_path, 'r', newline='') as file: csv_reader = csv.reader(file) headers = next(csv_reader) # Membaca header for row in csv_reader: data.append(row) return headers, data # Penggunaan headers, data = read_csv('data.csv') print("Headers:", headers) print("Data:", data[:5]) # Menampilkan 5 baris pertama
Menulis CSV:
pythonimport csvdata = [["Name", "Age", "City"],["Alice", 30, "New York"],["Bob", 25, "San Francisco"]]with open('output.csv', 'w', newline='') as file:writer = csv.writer(file)writer.writerows(data)
contoh 2 pythonimport csv
def write_csv(file_path, headers, data):
with open(file_path, 'w', newline='') as file:
csv_writer = csv.writer(file)
csv_writer.writerow(headers)
csv_writer.writerows(data)
# Penggunaan
headers = ['Name', 'Age', 'City']
data = [
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
write_csv('output.csv', headers, data)
import csv
def write_csv(file_path, headers, data):
with open(file_path, 'w', newline='') as file:
csv_writer = csv.writer(file)
csv_writer.writerow(headers)
csv_writer.writerows(data)
# Penggunaan
headers = ['Name', 'Age', 'City']
data = [
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
write_csv('output.csv', headers, data)
3. Membaca dan Menulis File Excel
Untuk bekerja dengan file Excel, kita dapat menggunakan library openpyxl
atau pandas
.
Membaca Excel dengan openpyxl
:
python
from openpyxl import load_workbookwb = load_workbook('data.xlsx')sheet = wb.activefor row in sheet.iter_rows(values_only=True):print(row)
Menggunakan library openpyxl
:
pythonfrom openpyxl import load_workbook def read_excel(file_path, sheet_name=None): wb = load_workbook(file_path, read_only=True) if sheet_name: sheet = wb[sheet_name] else: sheet = wb.active data = [] for row in sheet.iter_rows(values_only=True): data.append(row) headers = data[0] data = data[1:] return headers, data # Penggunaan headers, data = read_excel('data.xlsx', 'Sheet1') print("Headers:", headers) print("Data:", data[:5])
Menulis Excel dengan openpyxl
:
pythonfrom openpyxl import Workbookwb = Workbook()sheet = wb.activedata = [["Name", "Age", "City"],["Alice", 30, "New York"],["Bob", 25, "San Francisco"]]for row in data:sheet.append(row)wb.save('output.xlsx')
from openpyxl import Workbook
def write_excel(file_path, headers, data, sheet_name='Sheet1'):
wb = Workbook()
sheet = wb.active
sheet.title = sheet_name
sheet.append(headers)
for row in data:
sheet.append(row)
wb.save(file_path)
# Penggunaan
headers = ['Name', 'Age', 'City']
data = [
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
write_excel('output.xlsx', headers, data)
4. Membaca dan Menulis File JSON
Membaca JSON (Deserialization):
python
import jsonwith open('data.json', 'r') as file:data = json.load(file)print(data)
import json
def read_json(file_path):
with open(file_path, 'r') as file:
data = json.load(file)
return data
# Penggunaan
data = read_json('data.json')
print(data)
Menulis JSON (Serialization):
contoh 1python
import jsondata = {"name": "Alice","age": 30,"city": "New York"}with open('output.json', 'w') as file:json.dump(data, file, indent=4)
contoh 2pythonimport json def write_json(file_path, data): with open(file_path, 'w') as file: json.dump(data, file, indent=4) # Penggunaan data = { 'employees': [ {'name': 'Alice', 'age': 30, 'city': 'New York'}, {'name': 'Bob', 'age': 25, 'city': 'Los Angeles'}, {'name': 'Charlie', 'age': 35, 'city': 'Chicago'} ] } write_json('output.json', data)
5. Bekerja dengan pandas
pandas
adalah library yang kuat untuk analisis data yang membuat manipulasi struktur data seperti tabel lebih mudah dan efisien.
Membaca CSV dengan pandas
:
python
import pandas as pddf = pd.read_csv('data.csv')print(df)
Menulis CSV dengan pandas
:
pythonimport pandas as pddf = pd.DataFrame({"Name": ["Alice", "Bob"],"Age": [30, 25],"City": ["New York", "San Francisco"]})df.to_csv('output.csv', index=False)
Membaca Excel dengan pandas
:
python
import pandas as pddf = pd.read_excel('data.xlsx')print(df)
Menulis Excel dengan pandas
:
pythonimport pandas as pddf = pd.DataFrame({"Name": ["Alice", "Bob"],"Age": [30, 25],"City": ["New York", "San Francisco"]})df.to_excel('output.xlsx', index=False)
Membaca JSON dengan pandas
:
python
import pandas as pddf = pd.read_json('data.json')print(df)
Menulis JSON dengan pandas
:
pythonimport pandas as pddf = pd.DataFrame({"name": ["Alice", "Bob"],"age": [30, 25],"city": ["New York", "San Francisco"]})df.to_json('output.json', orient='records', lines=True)
import pandas as pd
def pandas_write_files(df, base_filename):
# CSV
df.to_csv(f'{base_filename}.csv', index=False)
# Excel
df.to_excel(f'{base_filename}.xlsx', index=False)
# JSON
df.to_json(f'{base_filename}.json', orient='records')
# Penggunaan
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [30, 25, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
pandas_write_files(df, 'output_pandas')
Python bekerja dengan Pandas - Loading CSV dalam DataFrame:
import pandas as pd
def load_csv_to_dataframe(file_path):
df = pd.read_csv(file_path)
return df
# Penggunaan
df = load_csv_to_dataframe('data.csv')
print(df.head())
print(df.info())
Implementasi dalam Industri
Analisis Data Keuangan
- Membaca CSV: Mengumpulkan data keuangan dari berbagai sumber dalam format CSV dan melakukan analisis menggunakan
pandas
. - Contoh: Menganalisis laporan keuangan untuk tren profitabilitas.
python-contoh 1import pandas as pddf = pd.read_csv('financial_data.csv')print(df.describe())python-contoh 2import pandas as pd import matplotlib.pyplot as plt # Membaca data keuangan dari CSV df = pd.read_csv('financial_data.csv') # Menganalisis tren pendapatan revenue_trend = df.groupby('Date')['Revenue'].sum() # Membuat grafik plt.figure(figsize=(12, 6)) revenue_trend.plot() plt.title('Tren Pendapatan') plt.xlabel('Tanggal') plt.ylabel('Pendapatan') plt.savefig('revenue_trend.png')
- Membaca CSV: Mengumpulkan data keuangan dari berbagai sumber dalam format CSV dan melakukan analisis menggunakan
Pemrosesan Data Pengguna
- Membaca dan Menulis JSON: Mengelola data pengguna dalam aplikasi web, menyimpan data profil pengguna dalam format JSON.
- Contoh: Memproses dan menyimpan data registrasi pengguna.
pythonimport jsonuser_data = {"username": "john_doe","email": "john@example.com"}with open('user_data.json', 'w') as file:json.dump(user_data, file, indent=4)Pelaporan Bisnis
- Menulis Excel: Menghasilkan laporan bulanan dalam format Excel untuk dibagikan dengan manajemen.
- Contoh: Membuat laporan penjualan.
pythonimport pandas as pdsales_data = {"Product": ["Product A", "Product B"],"Sales": [150, 200]}df = pd.DataFrame(sales_data)df.to_excel('sales_report.xlsx', index=False)Otomasi dan Skrip Batch
- Menggunakan
pandas
untuk Memproses Batch File CSV: Mengotomatiskan pemrosesan data batch untuk mengumpulkan dan mengolah data dari beberapa file CSV. - Contoh: Menggabungkan beberapa file CSV menjadi satu.
pythonimport pandas as pdimport osall_data = pd.DataFrame()for file in os.listdir('data'):if file.endswith('.csv'):df = pd.read_csv(os.path.join('data', file))all_data = all_data.append(df, ignore_index=True)all_data.to_csv('all_data.csv', index=False)- Menggunakan
- E-commerce - Manajemen Inventaris:
python
import pandas as pd # Membaca data inventaris dari Excel df = pd.read_excel('inventory.xlsx') # Menghitung total nilai inventaris df['Total Value'] = df['Quantity'] * df['Price'] total_inventory_value = df['Total Value'].sum() # Mengidentifikasi produk dengan stok rendah low_stock = df[df['Quantity'] < 10] # Menyimpan hasil analisis with pd.ExcelWriter('inventory_report.xlsx') as writer: df.to_excel(writer, sheet_name='Full Inventory', index=False) low_stock.to_excel(writer, sheet_name='Low Stock', index=False)
- IoT (Internet of Things):python
import pandas as pd import json from datetime import datetime # Membaca data sensor dari CSV df = pd.read_csv('sensor_data.csv') # Mengonversi timestamp ke format yang sesuai df['timestamp'] = pd.to_datetime(df['timestamp']) # Mengelompokkan data per hari daily_avg = df.groupby(df['timestamp'].dt.date)['temperature'].mean() # Mengonversi ke JSON untuk dikirim ke cloud json_data = daily_avg.to_json(orient='index') # Menyimpan JSON with open('daily_temperature.json', 'w') as f: json.dump(json_data, f)
- Manajemen Pelanggan:python
import pandas as pd import json # Membaca data pelanggan dari Excel df = pd.read_excel('customer_data.xlsx') # Menghitung nilai pelanggan df['Customer Value'] = df['Total Purchases'] * df['Average Purchase Value'] # Mengidentifikasi pelanggan high-value high_value_customers = df[df['Customer Value'] > 1000] # Mengekspor data high-value customers ke JSON untuk API high_value_json = high_value_customers.to_json(orient='records') with open('high_value_customers.json', 'w') as f: json.dump(high_value_json, f)
- Analisis Data Ilmiah:python
import pandas as pd import matplotlib.pyplot as plt from scipy import stats # Membaca data eksperimen df = pd.read_csv('experiment_data.csv') # Melakukan t-test group1 = df[df['Group'] == 'A']['Result'] group2 = df[df['Group'] == 'B']['Result'] t_stat, p_value = stats.ttest_ind(group1, group2) # Visualisasi plt.figure(figsize=(10, 6)) df.boxplot(column='Result', by='Group') plt.title(f'Perbandingan Hasil Grup A dan B\np-value: {p_value:.4f}') plt.savefig('experiment_results.png')
- Otomatisasi Laporan:python
import pandas as pd from openpyxl import Workbook from openpyxl.styles import Font, Alignment # Membaca data dari berbagai sumber sales_df = pd.read_csv('sales_data.csv') inventory_df = pd.read_excel('inventory.xlsx') customer_df = pd.read_json('customer_data.json') # Membuat laporan Excel wb = Workbook() ws = wb.active ws.title = "Sales Report" # Menambahkan judul ws['A1'] = "Monthly Sales Report" ws['A1'].font = Font(size=16, bold=True) # Menambahkan data penjualan sales_data = sales_df.values.tolist() for row in sales_data: ws.append(row) # Menyimpan laporan wb.save('monthly_report.xlsx')
- Integrasi Sistem:python
import pandas as pd import json # Membaca data dari CSV sistem lama old_system_df = pd.read_csv('old_system_data.csv') # Mengonversi ke format JSON untuk sistem baru new_system_json = old_system_df.to_json(orient='records') # Menyimpan sebagai JSON with open('new_system_data.json', 'w') as f: json.dump(new_system_json, f) # Membaca kembali JSON untuk verifikasi with open('new_system_data.json', 'r') as f: verified_data = json.load(f) print("Data berhasil dikonversi dan diverifikasi.")
- Analisis Media Sosial:python
import pandas as pd import json from collections import Counter # Simulasi data dari API media sosial with open('social_media_data.json', 'r') as f: social_data = json.load(f) # Mengonversi ke DataFrame df = pd.DataFrame(social_data) # Analisis hashtag all_hashtags = [tag for tags in df['hashtags'] for tag in tags] top_hashtags = Counter(all_hashtags).most_common(10) # Menyimpan hasil analisis results = pd.DataFrame(top_hashtags, columns=['Hashtag', 'Count']) results.to_csv('top_hashtags.csv', index=False)
- Manajemen Logistik:python
import pandas as pd from datetime import datetime, timedelta # Membaca data inventaris dan pengiriman inventory_df = pd.read_excel('inventory.xlsx') shipment_df = pd.read_csv('shipments.csv') # Menghitung estimasi kedatangan shipment_df['Estimated Arrival'] = pd.to_datetime(shipment_df['Ship Date']) + pd.Timedelta(days=5) # Mengidentifikasi item yang perlu dipesan kembali reorder_items = inventory_df[inventory_df['Quantity'] < inventory_df['Reorder Point']] # Menyimpan laporan with pd.ExcelWriter('logistics_report.xlsx') as writer: inventory_df.to_excel(writer, sheet_name='Current Inventory', index=False) shipment_df.to_excel(writer, sheet_name='Ongoing Shipments', index=False) reorder_items.to_excel(writer, sheet_name='Reorder List', index=False)
- Pemrosesan Data Besar:python
import pandas as pd import json from pymongo import MongoClient # Membaca file CSV besar secara efisien chunksize = 100000 chunks = [] for chunk in pd.read_csv('large_data.csv', chunksize=chunksize): # Proses setiap chunk processed_chunk = chunk.groupby('Category')['Value'].sum().reset_index() chunks.append(processed_chunk) # Menggabungkan hasil result = pd.concat(chunks) final_result = result.groupby('Category')['Value'].sum().reset_index() # Mengonversi ke JSON untuk penyimpanan di MongoDB json_data = final_result.to_json(orient='records') # Simulasi penyimpanan ke MongoDB client = MongoClient('mongodb://localhost:27017/') db = client['bigdata_db'] collection = db['processed_data'] collection.insert_many(json.loads(json_data))
Dengan memahami dan mengimplementasikan konsep-konsep ini, pengembang dapat memanfaatkan kemampuan Python untuk mengelola dan memproses data dalam berbagai format secara efisien, yang sangat berguna dalam berbagai aplikasi industri.
Comments
Post a Comment