This project demonstrates how to export pandas.DataFrame objects to LaTeX format with styling, captions, labels, and formatting. It's perfect for generating publication-quality tables for scientific papers, reports, or documentation.
pip install pandasA LaTeX distribution (like TeX Live or MikTeX) is required to compile
.texfiles into PDFs.
Make sure your CSV files are available in your working directory:
import pandas as pd
df_employee_data = pd.read_csv('employee_data.csv')
df_experiment_data = pd.read_csv('experiment_data.csv')
df_large_table_1 = pd.read_csv('large_table_1.csv')
df_large_table_2 = pd.read_csv('large_table_2.csv')from your_module import save_latex_table
save_latex_table(
df_employee_data,
filename="table.tex",
float_format="%.2f",
caption="Employee Data",
label="tab:employee_data",
center=True
)Apply custom formatting:
def highlight_high_values(val):
return "\\textbf{" + str(val) + "}" if val > 90 else str(val)
df_styled = df_experiment_data.style.format({
"Temperature (°C)": highlight_high_values,
"Success Rate ($\\%$)": highlight_high_values
})Save styled table:
from your_module import save_latex_table_styled
save_latex_table_styled(
df_styled,
filename="styled_table.tex",
caption="Styled table with bolded values",
label="tab:styled"
)df_employee = pd.DataFrame({
"ID": [101, 102, 103],
"Name": ["Alice", "Bob", "Charlie"],
"Department": ["HR", "IT", "Finance"],
"Joining Date": ["2020-01-10", "2019-07-23", "2021-06-15"]
})
df_employee.columns = pd.MultiIndex.from_tuples([
("Employee Info", "ID"),
("Employee Info", "Name"),
("Work Details", "Department"),
("Work Details", "Joining Date"),
])
save_latex_table(
df_employee,
filename="employee_table.tex",
caption="Employee Details",
label="tab:employee"
)print(df_experiment_data.to_latex(float_format="%.1f"))
save_latex_table(
df_experiment_data,
filename="precision_table1.tex",
float_format="%.4f",
caption="Scientific Notation Example",
label="tab:precision_table1"
)
save_latex_table(
df_large_table_1,
filename="precision_table2.tex",
float_format="%.3f",
caption="Presentation of employee data.",
label="tab:data_emp"
)You can also export tables using the command line!
python export_table_cli.py \
--input employee_data.csv \
--output employee_table.tex \
--caption "Employee Overview" \
--label tab:employee \
--float_format "%.2f" \
--center \
--position h!| Option | Description | Required | Default |
|---|---|---|---|
--input |
Path to the input CSV file | ✅ | — |
--output |
Output .tex filename |
❌ | table.tex |
--caption |
Table caption | ❌ | "Table Caption" |
--label |
LaTeX reference label | ❌ | tab:label |
--float_format |
Format for float numbers | ❌ | "%.2f" |
--center |
Add \\centering for table alignment |
❌ | False |
--position |
Float position (e.g., h!, t, b, etc.) |
❌ | "h!" |
All exports will generate:
- A standalone
.texfile (compilable with LaTeX) - Includes required packages (
booktabs,longtable,graphicx,adjustbox) - Centered tables with optional float formatting
To compile:
pdflatex table.tex- Add support for longtables
- Wrap wide tables using
adjustbox - Auto-compile to PDF or image format
- Combine multiple tables into one report
- Highlight using
Styler.applymap()orhighlight_max() - Create a Python package (
pip install latex-table-exporter)
MIT License — Free to use, modify, and distribute.
Let me know if you'd like the CLI script bundled in a module with installable CLI support via setup.py or pyproject.toml.