पंडों: सेटिंग नहीं। अधिकतम पंक्तियों की


138

मुझे निम्नलिखित देखने में समस्या है DataFrame:

n = 100
foo = DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)
foo

समस्या यह है कि यह ipython नोटबुक में डिफ़ॉल्ट रूप से सभी पंक्तियों को प्रिंट नहीं करता है, लेकिन परिणामी पंक्तियों को देखने के लिए मुझे स्लाइस करना होगा। यहां तक ​​कि निम्न विकल्प भी आउटपुट को नहीं बदलता है:

pd.set_option('display.max_rows', 500)

क्या किसी को पता है कि पूरे सरणी को कैसे प्रदर्शित किया जाए?


जब मैं आपका कोड डिफ़ॉल्ट (यानी कोई विशेष कॉन्फ़िगरेशन प्रोफ़ाइल) नोटबुक में चलाता हूं, तो मुझे एक सुंदर मुद्रित तालिका मिलती है जो सभी मानों के साथ स्क्रॉल करने योग्य होती है। FYI करें, मेरा पांडा .__ संस्करण__ = 0.9.1 (निश्चित नहीं है कि क्या यह मामला है)
बबलगूपीज़

मेरा मतलब नियमित शेल था, न कि आइपियन
रयान सक्से

मुझे लग रहा है कि यह 0.11 + में एक बग हो सकता है ...
एंडी हेडन

नमस्ते एन्डी। क्या यह पहले से ही वेस द्वारा पुष्टि की गई है? मैं इस बग को कहां दर्ज कर सकता हूं? क्या आसपास कोई काम है?
एंडी

मैंने अभी इसे यहां दायर किया है , मुझे पता है कि 0.11 में डेटाफ्रेम रीप्र में कुछ अंतिम मिनट के बदलाव थे ताकि मैं उन बग रिपोर्ट में सीसी लगा दूं। क्या आप वर्कअराउंड को फिर से जान पाएंगे।
एंडी हेडन

जवाबों:


233

सेट करें display.max_rows:

pd.set_option('display.max_rows', 500)

पांडा के पुराने संस्करणों के लिए (<= 0.11.0) तुम दोनों को बदलने की जरूरत display.heightहै और display.max_rows

pd.set_option('display.height', 500)
pd.set_option('display.max_rows', 500)

यह भी देखें pd.describe_option('display')

आप अस्थायी रूप से केवल एक बार इस तरह के लिए एक विकल्प सेट कर सकते हैं :

from IPython.display import display
with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    display(df) #need display to show the dataframe when using with in jupyter
    #some pandas stuff

आप इस तरह से अपने डिफ़ॉल्ट मान पर वापस एक विकल्प भी रीसेट कर सकते हैं:

pd.reset_option('display.max_rows')

और उन सभी को वापस रीसेट करें:

pd.reset_option('all')


6
Pd.describe_option ('प्रदर्शन') के लिए +1, मुझे सभी विकल्प नहीं पता थे
नामांकन-सोम-इर

41
ऊँचाई अब पदावनत हो गई है इसलिए display.max_rows विकल्प पर्याप्त है।
हनीलेहंस

9
केवल स्वीकृत उत्तर को देखने वाले किसी व्यक्ति के लिए: with pd.option_context('display.height', 500, 'display.max_rows', 500):केवल इनको अस्थायी रूप से सेट करने के लिए उपयोग करें।
बॉलपॉइंटबैन

मुझे इसे हासिल करने का सबसे सही तरीका देना चाहिए। कोई भी उपयोग न करें और 500 तक सीमित न करें। # मूलभूत प्रदर्शन सभी पंक्तियों और स्तंभों के साथ pd.option_context ('display.max_rows', कोई नहीं, 'display.max_columns', कोई नहीं): प्रदर्शन (df_acacilities) उपरोक्त कोड केवल प्रभावी होगा कोड वाले सेल में अन्य कोशिकाओं में रीसेट करने की आवश्यकता नहीं है।
MGB.py

35

व्यक्तिगत रूप से, मैं सीधे असाइनमेंट स्टेटमेंट के साथ विकल्पों को सेट करना पसंद करता हूं क्योंकि यह iPython के लिए टैब पूरा करने के लिए धन्यवाद के माध्यम से खोजना आसान है। मुझे यह याद रखना मुश्किल है कि सटीक विकल्प नाम क्या हैं, इसलिए यह विधि मेरे लिए काम करती है।

उदाहरण के लिए, मुझे यह याद रखना होगा कि इसकी शुरुआत होती है pd.options

pd.options.<TAB>

यहाँ छवि विवरण दर्ज करें

अधिकांश विकल्प के तहत उपलब्ध हैं display

pd.options.display.<TAB>

यहाँ छवि विवरण दर्ज करें

यहां से, मैं आमतौर पर वर्तमान मूल्य इस तरह से आउटपुट करता हूं:

pd.options.display.max_rows
60

मैंने तब इसे सेट किया जो मैं चाहता हूं कि यह हो:

pd.options.display.max_rows = 100

इसके अलावा, आपको विकल्पों के संदर्भ प्रबंधक के बारे में पता होना चाहिए, जो अस्थायी रूप से कोड के ब्लॉक के अंदर विकल्पों को सेट करता है। विकल्प नाम में पास एक स्ट्रिंग के रूप में मान के साथ आप इसे चाहते हैं। आप एक ही पंक्ति में कई विकल्पों में से गुजर सकते हैं:

with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    some pandas stuff

आप इस तरह से अपने डिफ़ॉल्ट मान पर वापस एक विकल्प भी रीसेट कर सकते हैं:

pd.reset_option('display.max_rows')

और उन सभी को वापस रीसेट करें:

pd.reset_option('all')

के माध्यम से विकल्प सेट करना अभी भी पूरी तरह से अच्छा है pd.set_option। मैं सिर्फ विशेषताओं का उपयोग सीधे आसान है और के लिए कम जरूरत नहीं है लगता है get_optionऔर set_option


4
with pd.option_contextइन उत्तरों के बीच सबसे स्वच्छ विधि है; कम से कम दुष्प्रभाव।
जोजफ

10

यह पहले से ही इस टिप्पणी में और इस उत्तर में बताया गया था , लेकिन मैं इस प्रश्न का अधिक सीधा उत्तर देने का प्रयास करूंगा:

from IPython.display import display
import numpy as np
import pandas as pd

n = 100
foo = pd.DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)

with pd.option_context("display.max_rows", foo.shape[0]):
    display(foo)

pandas.option_context पांडा 0.13.1 ( पांडा 0.13.1 रिलीज नोट ) के बाद से उपलब्ध है । के अनुसार इस ,

[यह] अनुमति दें [s] आप एक ब्लॉकब्लॉक को निष्पादित करने के लिए विकल्पों के एक सेट के साथ निष्पादित करते हैं जो ब्लॉक से बाहर निकलने पर पूर्व सेटिंग्स पर वापस आ जाते हैं।


9

जैसा कि @hanleyhansen ने टिप्पणी में उल्लेख किया है, संस्करण 0.18.1 के रूप में, display.heightविकल्प को हटा दिया गया है, और कहते हैं कि " display.max_rowsइसके बजाय उपयोग करें "। तो आपको बस इसे इस तरह कॉन्फ़िगर करना होगा:

pd.set_option('display.max_rows', 500)

रिलीज़ नोट देखें - पांडा 0.18.1 प्रलेखन :

पदावनत प्रदर्शन। दृश्य, प्रदर्शन। उपलब्धता अब केवल एक स्वरूपण विकल्प है जो सारांश के ट्रिगर को नियंत्रित नहीं करता है, <0.11.0 के समान।


7
pd.set_option('display.max_rows', 500)
df

जुपिटर में काम नहीं करता है !
इसके बजाय उपयोग करें:

pd.set_option('display.max_rows', 500)
df.head(500)

3

के रूप में इस सवाल का जवाब एक करने के लिए इसी तरह के सवाल , सेटिंग्स को हैक करने की कोई जरूरत नहीं है। यह लिखना बहुत सरल है:

print(foo.to_string())

1
आपको इसे स्ट्रिंग में परिवर्तित नहीं करना चाहिए। यह वह नहीं है जो एंडी ने मांगा था।
simtim

1
@simtim एंडी ने पूछा कि "संपूर्ण सरणी को कैसे प्रदर्शित करें"। यह ऐसा करेगा और स्वीकृत उत्तर की तुलना में बहुत सरल है।
निन्जाकन्नन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.