แสดงคอลัมน์ dataframe ทั้งหมดใน Jupyter Python Notebook


109

ฉันต้องการแสดงคอลัมน์ทั้งหมดในดาต้าเฟรมใน Jupyter Notebook Jupyter แสดงคอลัมน์บางคอลัมน์และเพิ่มจุดในคอลัมน์สุดท้ายดังภาพต่อไปนี้:

ภาพหน้าจอของ Juputer

ฉันจะแสดงคอลัมน์ทั้งหมดได้อย่างไร

คำตอบ:


183

ลองใช้การตั้งค่าการแสดงผล max_columns ดังนี้:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

หรือ

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

แก้ไข: Pandas 0.11.0 ถอยหลัง

สิ่งนี้เลิกใช้แล้ว แต่ในเวอร์ชันของ Pandas ที่เก่ากว่า 0.11.0 max_columnsจะมีการระบุการตั้งค่าดังนี้:

pd.set_printoptions(max_columns=500)

ควรใช้งานได้เว้นแต่คุณจะมี Pandas เวอร์ชันเก่ามาก ฉันได้อัปเดตคำตอบ ...
อิสมา

5
หากคุณต้องการตั้งค่าชั่วคราวคุณสามารถใช้เช่นwith pd.option_context("display.max_rows", 10, "display.max_columns", 5):(ดูตัวเลือกการรับและการตั้งค่า )
Benjamin B.

37

ฉันรู้ว่าคำถามนี้เก่าไปหน่อย แต่คำถามต่อไปนี้ใช้ได้กับฉันใน Jupyter Notebook ที่ใช้แพนด้า 0.22.0 และ Python 3:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

คุณสามารถทำเช่นเดียวกันกับแถวได้เช่นกัน:

pd.set_option('display.max_rows', <number of rows>)

วิธีนี้ช่วยประหยัดการนำเข้า IPython และมีตัวเลือกเพิ่มเติมในเอกสาร pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html


1
คุณสามารถใช้คีย์เวิร์ด None ใน <จำนวนคอลัมน์> ได้หากคุณไม่ทราบจำนวนคอลัมน์ล่วงหน้า
kmundnic

9

Python 3.x สำหรับ DataFrames ขนาดใหญ่ (แต่ไม่ใหญ่เกินไป)

อาจจะเป็นเพราะฉันมีแพนด้ารุ่นเก่ากว่า แต่ในโน๊ตบุ๊ค Jupyter งานนี้สำหรับฉัน

import pandas as pd
from IPython.core.display import HTML

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))

พยายามแล้ว แต่มันทำลายเซสชั่น jupyter ของฉันจนหมดความทรงจำ พีซีของฉันมี SSD และหน่วยความจำ RAM 8 GB ...
FLBKernel

@FLBKernel ยังไม่ได้ทำกับฉันบางที Dataframe ของคุณใหญ่กว่าของฉันมาก ทางออกของคุณคืออะไร? คุณลองวิธีอื่นและได้ผลสำหรับคุณหรือไม่? ถ้าเป็นเช่นนั้นแบ่งปันความรู้ของคุณ ขอบคุณ.
rsc05

ฉันยังไม่พบวิธีการใด ๆ แต่เราจะแจ้งให้คุณทราบทันทีที่สามารถแก้ปัญหานี้ได้ และใช่ Dataframe ของฉันอาจใหญ่กว่าดังนั้นให้ชี้ให้เห็นว่าสิ่งนี้ไม่สามารถแนะนำได้สำหรับ Dataframes ขนาดใหญ่
FLBKernel

1
@FLBKernel กรอบข้อมูลของฉันก็ใหญ่เช่นกัน แต่ฉันไม่รู้ว่ามันจะใหญ่ขนาดไหน ฉันจะชี้ให้เห็น ขอบคุณ!
rsc05

เหมืองมี 107.763 แถวและ 15 คอลัมน์ เราสามารถสร้าง -maybe- ที่มากกว่า 100,000 แถวและ 15 คอลัมน์คำตอบนี้ไม่สามารถแนะนำได้ ฉันชอบชื่อเรื่อง "ใหญ่ (แต่ไม่ใหญ่เกินไป)" นะ :)
FLBKernel

5

ฉันขอแนะนำให้ตั้งค่าตัวเลือกการแสดงผลภายในตัวจัดการบริบทเพื่อให้มีผลกับเอาต์พุตเดียวเท่านั้น หากคุณต้องการพิมพ์เวอร์ชัน html ที่ "สวย" ฉันจะกำหนดฟังก์ชันและแสดง dataframe dfโดยใช้force_show_all(df):

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

ดังที่คนอื่น ๆ กล่าวไว้โปรดใช้ความระมัดระวังในการเรียกสิ่งนี้บนดาต้าเฟรมที่มีขนาดพอสมควรเท่านั้น


1

คุณสามารถใช้ pandas.set_option () สำหรับคอลัมน์คุณสามารถระบุตัวเลือกเหล่านี้ได้

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

สำหรับคอลัมน์การพิมพ์แบบเต็มคุณสามารถใช้แบบนี้ได้

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

ใส่คำอธิบายภาพที่นี่


1

หากคุณต้องการแสดงแถวทั้งหมดที่ตั้งค่าไว้เช่นร้อง

pd.options.display.max_rows = None

หากคุณต้องการแสดงคอลัมน์ทั้งหมดที่ตั้งค่าไว้เช่นร้อง

pd.options.display.max_columns = None
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.