Pandalar veri çerçevesinden html'ye dönüştürülürken, tam (kesilmemiş) veri çerçevesi bilgilerini html olarak nasıl görüntülerim?


213

Panda veri çerçevesini bir html çıktısına DataFrame.to_htmlişlevini kullanarak dönüştürdüm . Bunu ayrı bir html dosyasına kaydettiğimde, dosya kesilmiş çıktıyı gösteriyor.

Örneğin, METİN sütunumda,

df.head(1) gösterecek

Film mükemmel bir çabaydı ...

onun yerine

Film, bu dönemde hüküm süren karmaşık toplumsal duyguların yapısını çözmek için mükemmel bir çabaydı.

Bu yorumlama, büyük pandalar veri çerçevesinin ekran dostu bir biçiminde iyidir, ancak veri çerçevesinde yer alan tam tablo verisini, yani ikinci metin öğesini gösterecek bir şey gösterecek bir html dosyasına ihtiyacım var önceki metin snippet'i.

Bilgilerin html sürümünde METİN sütunumdaki her öğe için tam, kesilmemiş metin verilerini nasıl gösterebilirim? Html tablosunun tüm verileri göstermek için uzun hücreleri görüntülemesi gerektiğini düşünürdüm, ancak anladığım kadarıyla, yalnızca sütun genişliği parametreleri DataFrame.to_htmlişleve geçirilebilir .

Yanıtlar:


426

display.max_colwidthSeçeneği şu şekilde ayarlayın -1:

pd.set_option('display.max_colwidth', -1)

set_option docs

Örneğin, iPython'da bilgilerin 50 karaktere indirildiğini görüyoruz. Fazla olan her şey elips edilir:

resim açıklamasını buraya girin

Eğer ayarlarsanız display.max_colwidthseçeneği, bilgi tamamen görüntülenecektir:

resim açıklamasını buraya girin


11
Dokümanlara göre, onu Nonesınırsız olarak ayarlamanız gerekir .
kynan

21
Cevap doğrudur, yani ayarlanmamalıdır None. Aksi takdirde ValueError: Value must have type '<class 'int'>'hata alırsınız .
xpt

Bahsettiğim bu!
Ivan

2
max_columnsKullanan benim için çalıştı cevap, Noneikinci argüman olarak set_option.
kilojoules

8
Bu görüntüleme seçeneklerinin yalnızca bir kez uygulanmasını ve kalıcı olarak uygulanmamasını istiyorsanız, bağlam yöneticisini şu şekilde de kullanabilirsiniz:with pd.option_context('display.max_colwidth', -1): display(df)
SA

115
pd.set_option('display.max_columns', None)  

id (ikinci argüman) sütunları tam olarak gösterebilir.


Büyük küçük bir kenara, masamın ortasına yakın ve üç nokta (...) ile temsil edildiği gibi, sütun sayısı benim için kesildi. Teşekkürler!
dört43

4
Bu benim için çalıştı, diğer cevap değil. Ben Python 3.6 kullanıyorum
Durga Swaroop

1
Bu benim için Python 2.7'de işe yaramadı, ancak @ behzad.nouri'nin ilk cevabı işe yaradı.
r3robertson

Bu kabul edilen cevap olmalı. Şu anki kabul yanıtı seçeneği max_colwidth, bir alanın çok uzun değerlere sahip olmasından kaynaklanan kesme sorununu çözebilir. Ancak, çoğu insan için kesilen konuların aslında çok fazla sütun olduğunu düşünüyorum. Yani, bu max_columnskabul edilen olmalı.
Christopher

@Christopher, OP bir sütunun genişliğini sordu, birçoğu buraya her ikisi için geliyor, bu yüzden Karl'ın cevabı onlar için daha alakalı.
Alexei Martianov

87

Birlikte pd.set_option('display.max_columns', None)setleri gösterilen maksimum sütun sayısı, seçenek pd.set_option('display.max_colwidth', -1)her bir alanın en büyük genişliğini belirtir.

Benim amacım için, kodun geri kalanını etkilemeden büyük veri çerçevelerini tam olarak yazdırmak için küçük bir yardımcı işlev yazdım, ayrıca kayan sayıları yeniden biçimlendirir ve sanal ekran genişliğini ayarlar. Kullanım durumlarınız için kabul edebilirsiniz.

def print_full(x):
    pd.set_option('display.max_rows', len(x))
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', 2000)
    pd.set_option('display.float_format', '{:20,.2f}'.format)
    pd.set_option('display.max_colwidth', None)
    print(x)
    pd.reset_option('display.max_rows')
    pd.reset_option('display.max_columns')
    pd.reset_option('display.width')
    pd.reset_option('display.float_format')
    pd.reset_option('display.max_colwidth')

kullanımdan kaldırma uyarısını önlemek için -1'i "(") satırında "Hiçbiri" olarak değiştirin
Mark Zhukovsky

1

Bunu dask'ta yapmak isteyenler için. Ben dask benzer bir seçenek bulamadı ama eğer sadece pandalar için aynı defterde bunu yaparsam da dask için çalışır.

import pandas as pd
import dask.dataframe as dd
pd.set_option('display.max_colwidth', -1) # This will set the no truncate for pandas as well as for dask. Not sure how it does for dask though. but it works

train_data = dd.read_csv('./data/train.csv')    
train_data.head(5)

0

Aşağıdaki kod aşağıdaki hatayla sonuçlanır:

pd.set_option('display.max_colwidth', -1)

FutureWarning: Negatif bir tamsayı iletmek sürüm 1.0'da kullanımdan kaldırılmıştır ve gelecekteki sürümlerde desteklenmeyecektir. Bunun yerine, sütun genişliğini sınırlamak için Yok'u kullanın.

Bunun yerine şunu kullanın:

pd.set_option('display.max_colwidth', None)

Bu görevi yerine getirir ve sürüm 1.0'ı takip eden pandaların sürümleriyle uyumludur .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.