पंडों को to_html () स्ट्रिंग सामग्री ट्रंकसेट करता है


81

मेरे पास एक पायथन पंडों की DataFrameवस्तु है जिसमें पाठ्य सामग्री है। मेरी समस्या यह है कि जब मैं उपयोग करता हूंto_html() फ़ंक्शन का करता , तो यह आउटपुट में स्ट्रिंग्स को काट देता है।

उदाहरण के लिए:

import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())

आउटपुट को काट दिया जाता है adapis...

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>text</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td> Lorem ipsum dolor sit amet, consectetur adipis...</td>
    </tr>
  </tbody>
</table>

SO पर एक संबंधित प्रश्न है, लेकिन यह HTML को पोस्टप्रोसेस करने के लिए प्लेसहोल्डर्स और खोज / प्रतिस्थापन कार्यक्षमता का उपयोग करता है, जिससे मैं बचना चाहूंगा:

क्या इस समस्या का कोई सरल समाधान है? मुझे प्रलेखन से संबंधित कुछ भी नहीं मिला ।


2
आप सामग्री कैसे देख रहे हैं, क्या यह iPython के माध्यम से है? इसे आज़माएं pd.set_option('display.max_colwidth', -1)और फिर html प्रिंट करें, आपको पता होना चाहिए कि यह पूर्ण पाठ को प्रदर्शित करता है, यह वास्तविक डेटा की
छंटनी के

@EdChum हाँ, वास्तव में मैं HTML गर्त IPython को देख रहा था, लेकिन साधारण अजगर टर्मिनल में भी वही परिणाम मिले। लेकिन हां, set_option इसे ठीक करता है! टर्मिनल और आईपीथॉन दोनों में। पहले उस संभावना के बारे में नहीं जानता था।
टिमो

पांडा आपको आउटपुट के डिस्प्ले रीम्स से बचाने की कोशिश करता है जो कम अजगर के वातावरण को मार सकता है, इसके अलावा अस्पष्ट बग के बारे में मैंने कभी नहीं सुना है कि यह डेटा को
तोड़

यहां उनकी एक सूची है: stackoverflow.com/questions/21293536/list-of-pandas-options/… और ऑनलाइन डॉक्स: pandas.pydata.org/pandas-docs/sable/options.html
EdChum

जवाबों:


108

आप जो देख रहे हैं, वह केवल प्रदर्शन उद्देश्यों के लिए आउटपुट को छोटा कर रहा है।

डिफ़ॉल्ट max_colwidth मान 50 है जो आप देख रहे हैं।

आप इस मूल्य को अपनी इच्छानुसार सेट कर सकते हैं या आप इसे -1 पर सेट कर सकते हैं जो इसे प्रभावी रूप से बंद कर देता है:

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

हालांकि मैं इसके खिलाफ सलाह दूंगा, लेकिन इसे किसी ऐसी चीज़ के लिए सेट करना बेहतर होगा जो आपके कंसोल या आईपीथॉन में आसानी से दिखाई दे।

विकल्पों की सूची यहां देखी जा सकती है: http://pandas.pydata.org/pandas-docs/stable@option.html


8
df.to_html () में `" ... "का मूल्यांकन करता है True। यह निश्चित है कि ऐसा प्रतीत होता pandasहै कि आउटपुट मूल्य को कम कर रहा है, न कि केवल डिस्प्ले को।
क्रिस Chudzicki

मेरे पास एक बहुत ही उत्सुक मामला है, जिसका मैं इस प्रश्न में वर्णन करता हूं: stackoverflow.com/questions/51260756/… जहां एक html तालिका में एक सेल वैल्यू एक शब्दकोश रखती है। डिक्शनरी, जो कि इतनी बड़ी नहीं है कि इसे अन्य तालिकाओं में ठीक दिखाया जाता है, लेकिन यह विशेष रूप से बहुत लंबा शब्दकोश डॉट्स द्वारा संक्षिप्त हो जाता है और मैं इसे प्रदर्शित नहीं कर सकता। मैंने pd.set_option ('display.max_rows', 1000) के साथ प्रयोग किया, कोई भाग्य नहीं। इसके लिए कोई सुझाव या मेरे सवाल का जवाब भी?
user637338

क्या यह अभी भी v 0.24 में ऐसा करने का तरीका है?
जेसन स्ट्रिम्पेल

@JasonStrimpel हाँ मुझे ऐसा लगता है
एडचम

1
@Superdooperhero आप नहीं कर सकते, प्रदर्शन विकल्प सभी कॉलम या पंक्तियों को प्रभावित करते हैं
एडचम

19

ऐसा लगता है pd.set_option('display.max_colwidth', -1) वास्तव में एकमात्र विकल्प है। कंसोल में डेटाफ़्रेम कैसे प्रस्तुत किए जाते हैं, इसके अपरिवर्तनीय वैश्विक परिवर्तनों को रोकने के लिए, आप पिछली सेटिंग को एक चर में सहेज सकते हैं और उपयोग के तुरंत बाद इसे पुनर्स्थापित कर सकते हैं, निम्नानुसार:

    old_width = pd.get_option('display.max_colwidth')
    pd.set_option('display.max_colwidth', -1)
    open('some_file.html', 'w').write(some_data.to_html())
    pd.set_option('display.max_colwidth', old_width)

45
एक बहुत ही सरल उपाय है कि अस्थायी विकल्प कैसे सेट किया जाए:with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()
हाइनेसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.