2013-02-25 6 views
11

Tôi đã đọc phương pháp about the to_latex, nhưng không rõ ràng cách sử dụng đối số định dạng.Định dạng đầu ra latex (to_latex)

Tôi có một số số là quá dài và một số mà tôi muốn nghìn dấu tách.

Một bên issue cho to_latex phương pháp trên bảng đa lập chỉ mục, các chỉ số được phân tích với nhau và nó tạo ra một số & s trong đầu ra mủ.

+0

Từ câu trả lời bên dưới, bạn có thể tìm kiếm các hàm định dạng python (quá dài đã được đề cập và có thể thấy [ở đây cho nghìn dấu tách] (http://stackoverflow.com/q/1823058/1240268)). –

Trả lời

19

Đối với một khung dữ liệu đơn giản. Thứ nhất, mà không cần trình định dạng:

In [11]: df 
Out[11]: 
       c1  c2 
first 0.821354 0.936703 
second 0.138376 0.482180 

In [12]: print df.to_latex() 
\begin{tabular}{|l|c|c|c|} 
\hline 
{} &  c1 &  c2 \\ 
\hline 
first & 0.821354 & 0.936703 \\ 
second & 0.138376 & 0.482180 \\ 
\hline 
\end{tabular} 

Sao chép-dán đầu ra (của [12]) với latex, chúng tôi nhận được: latex without formatters

Nếu chúng ta tạo ra hai hàm f1f2 và đặt chúng vào to_latex như formatters:

def f1(x): 
    return 'blah_%1.2f' % x 

def f2(x): 
    return 'f2_%1.2f' % x 

In [15]: print df.to_latex(formatters=[f1, f2]) 
\begin{tabular}{|l|c|c|c|} 
\hline 
{} &  c1 &  c2 \\ 
\hline 
first & blah\_0.82 & f2\_0.94 \\ 
second & blah\_0.14 & f2\_0.48 \\ 
\hline 
\end{tabular} 

Sao chép đầu ra thành latex, chúng tôi nhận được: latex with formatters f1 and f2

Lưu ý: cách hàm định dạng f1 được áp dụng cho cột đầu tiên và f2 cho cột thứ hai.

+0

Tôi đã viết mã để xử lý các vấn đề sau: * Pandas Nhiều chỉ mục * xử lý các ký tự dành riêng cho latex trong bảng. Phương pháp gấu trúc chuẩn dẫn đến lỗi trong việc biên dịch latex nếu '&', '%', '$', '#' vv được sử dụng trong bất kỳ ô nào. họ cần phải được thoát * cũng viết code mà có thể ban nhạc đại diện mủ của dataframe gấu trúc (che hàng thay thế) số * cũng autoformatting Phương pháp đang bị trói ở trong lớp tạo mủ rằng 'n đã viết rất khó đăng ở đây vì mã hơi lộn xộn. Tôi rất vui khi đăng bài ở đây nếu có ai cần giúp đỡ. – Joop

+0

Nếu bạn muốn định dạng chỉ các cột nổi, hãy đặt tham số 'float_format' thành hàm định dạng của bạn. Bạn không cần tạo danh sách hàm cho điều đó. – srodriguex