tableBài tập CSV - Nâng cao

Bài tập về CSV - Nâng cao

  1. Viết function merge_csv_files(file1, file2, output_file) gộp hai file CSV có cùng cấu trúc.

import csv

def merge_csv_files(file1, file2, output_file):
    # Gộp hai file CSV, giữ header chỉ một lần
    pass

# Test
merge_csv_files('students1.csv', 'students2.csv', 'all_students.csv')
  1. Viết function csv_to_dict_by_key(filename, key_column) chuyển CSV thành dictionary với key là một cột cụ thể.

import csv

def csv_to_dict_by_key(filename, key_column):
    # Trả về dict: {key_value: {column: value, ...}}
    pass

# Test
# employees.csv có cột 'id'
data = csv_to_dict_by_key('employees.csv', 'id')
print(data['101'])  # {'name': 'Alice', 'department': 'IT', ...}
  1. Viết function pivot_csv(input_file, output_file, row_col, col_col, value_col) tạo pivot table từ CSV.

  1. Viết function csv_groupby(filename, group_column, agg_column, agg_func) thực hiện group by và aggregation.

  1. Viết function filter_csv(input_file, output_file, filter_func) lọc CSV theo điều kiện phức tạp.

  1. Viết function sort_csv(input_file, output_file, sort_columns, reverse=False) sắp xếp CSV theo nhiều cột.

  1. Viết function csv_join(file1, file2, output_file, key1, key2, join_type='inner') thực hiện join hai CSV.

  1. Viết function csv_transpose(input_file, output_file) chuyển vị (transpose) CSV.

  1. Viết function csv_dedup(input_file, output_file, key_columns=None) loại bỏ dòng trùng lặp.

  1. Viết function csv_split(input_file, output_prefix, chunk_size) chia CSV thành nhiều file nhỏ.

  1. Viết function csv_column_stats(filename, column_name) tính thống kê cho một cột số.

  1. Viết function csv_add_calculated_column(input_file, output_file, new_col_name, calc_func) thêm cột tính toán.

  1. Viết function csv_to_html_table(filename, output_html) chuyển CSV thành bảng HTML.

  1. Viết function csv_validate(filename, schema) kiểm tra tính hợp lệ của CSV theo schema.

  1. Viết function csv_diff(file1, file2, key_column) tìm sự khác biệt giữa hai CSV.

  1. Viết function csv_anonymize(input_file, output_file, columns_to_mask) ẩn danh hoá dữ liệu.

  1. Viết function csv_to_sql_insert(filename, table_name, output_file) tạo SQL INSERT statements.

  1. Viết function csv_time_series_resample(filename, date_column, value_column, freq) resample time series data.

  1. Viết function csv_handle_encoding(input_file, output_file, input_encoding, output_encoding) chuyển đổi encoding.

  1. Viết class CSVProcessor với các method xử lý CSV nâng cao.

circle-info

Tips nâng cao:

  • Xử lý file lớn: đọc từng chunk thay vì load toàn bộ vào memory

  • Dùng csv.Sniffer() để tự động phát hiện delimiter và format

  • Xử lý encoding errors với errors='ignore' hoặc errors='replace'

  • Dùng pandas cho xử lý CSV phức tạp (nếu được phép)

Last updated