Có cách nào dễ dàng để xuất khung dữ liệu (hoặc thậm chí là một phần của nó) sang LaTeX không?Xuất bảng LaTeX từ gấu trúc DataFrame
Tôi đã tìm kiếm trong google và chỉ có thể tìm các giải pháp sử dụng asciitables.
Có cách nào dễ dàng để xuất khung dữ liệu (hoặc thậm chí là một phần của nó) sang LaTeX không?Xuất bảng LaTeX từ gấu trúc DataFrame
Tôi đã tìm kiếm trong google và chỉ có thể tìm các giải pháp sử dụng asciitables.
DataFrames có một phương pháp to_latex
:
In [42]: df = pd.DataFrame(np.random.random((5, 5)))
In [43]: df
Out[43]:
0 1 2 3 4
0 0.886864 0.518538 0.359964 0.167291 0.940414
1 0.834130 0.022920 0.265131 0.059002 0.530584
2 0.648019 0.953043 0.263551 0.595798 0.153969
3 0.207003 0.015721 0.931170 0.045044 0.432870
4 0.039886 0.898780 0.728195 0.112069 0.468485
In [44]: print df.to_latex()
\begin{tabular}{|l|c|c|c|c|c|c|}
\hline
{} & 0 & 1 & 2 & 3 & 4 \\
\hline
0 & 0.886864 & 0.518538 & 0.359964 & 0.167291 & 0.940414 \\
1 & 0.834130 & 0.022920 & 0.265131 & 0.059002 & 0.530584 \\
2 & 0.648019 & 0.953043 & 0.263551 & 0.595798 & 0.153969 \\
3 & 0.207003 & 0.015721 & 0.931170 & 0.045044 & 0.432870 \\
4 & 0.039886 & 0.898780 & 0.728195 & 0.112069 & 0.468485 \\
\hline
\end{tabular}
Bạn chỉ có thể viết những dòng này vào một tập tin tex.
By mủ mặc định sẽ làm điều này như:
Lưu ý: phương pháp to_latex
cung cấp một số tùy chọn cấu hình.
@hayden cảm ơn bạn đã chỉnh sửa – bmu
thx, đã hoạt động! Tôi chỉ phải cập nhật gấu trúc của tôi – PlagTag
hiện 'to_latex()' có hỗ trợ lập chỉ mục nhiều lần không? – TheChymera
Chỉ cần viết vào một tệp văn bản. Không có gì kỳ diệu:
import pandas as pd
df = pd.DataFrame({"a":range(10), "b":range(10,20)})
with open("my_table.tex", "w") as f:
f.write("\\begin{tabular}{" + " | ".join(["c"] * len(df.columns)) + "}\n")
for i, row in df.iterrows():
f.write(" & ".join([str(x) for x in row.values]) + " \\\\\n")
f.write("\\end{tabular}")
Mặc dù hữu ích khi hiển thị việc xuất dữ liệu dạng bảng dễ dàng như thế nào LaTeX sử dụng Python đơn giản, tất nhiên là tốt hơn nhiều khi sử dụng các phương tiện hiện có, ví dụ 'DataFrame.to_latex()' trong trường hợp này. –
Xin chào, tôi hoàn toàn đồng ý. Lý do của tôi là: 1. Tôi bắt đầu với gấu trúc trước phiên bản 0.9, nơi to_latex không có sẵn 2. Điều này có thể hữu ích khi cần một số điều chỉnh hoặc ai đó muốn xuất sang định dạng khác, ví dụ XAML, XML tùy chỉnh hoặc bất kỳ thứ gì . Nhưng cảm ơn bạn đã bình luận của bạn –
Ngoài các trả lời ở đây, câu hỏi này cũng có một cách tiếp cận thú vị. Xuất sang csv và sau đó nhập csv vào latex: http://tex.stackexchange.com/questions/54990/convert-numpy-array-into-tabular –