2013-03-25 5 views
7

एक नियम के रूप में, मुझे DataFrame ऑब्जेक्ट्स के लिए bg की बजाय लंबे, वर्णनात्मक कॉलम नामों (उदा। estimated_background_signal) का उपयोग करना पसंद है। इस वरीयता का एक नकारात्मक पक्ष यह है कि DataFrame के डिस्प्ले फॉर्म में कई कॉलम हैं जो उनके मूल्यों की अपेक्षा अधिक व्यापक हैं। उदाहरण के लिए:डेटाफ्रेम डिस्प्ले के हेडर और कॉलम चौड़ाई को कस्टमाइज़ कैसे करें?

In [10]: data.head() 
    barcode estimated_background_signal inhibitor_code inhibitor_concentration 
0 R00577279       133   IRB     0.001 
1 R00577279       189   SNZ     0.001 
2 R00577279       101   CMY     0.001 
3 R00577279       112   BRC     0.001 
4 R00577279       244   ISB     0.001 

यह अच्छा होगा अगर प्रदर्शन संकुचित हो। हेडर की अनदेखी, सबसे संकीर्ण प्रदर्शन होगा:

0 R00577279 113 IRB 0.001 
1 R00577279 189 SNZ 0.001 
2 R00577279 101 CMY 0.001 
3 R00577279 112 BRC 0.001 
4 R00577279 244 ISB 0.001 

... लेकिन हेडर पूरी तरह नष्ट करने एक पूरी तरह से संतोषजनक समाधान नहीं है। एक बेहतर एक प्रदर्शन विस्तृत कुछ हेडर की अनुमति देने के लिए पर्याप्त बनाने के लिए हो सकता है, संभवतः कई लाइनों को ले जा रही:

barcode estim inhib inhib 
      ated_ itor_ itor_ 
      backg code conce 
0 R00577279 113 IRB 0.001 
1 R00577279 189 SNZ 0.001 
2 R00577279 101 CMY 0.001 
3 R00577279 112 BRC 0.001 
4 R00577279 244 ISB 0.001 

यह किसी भी स्थिति में शायद स्पष्ट है कि कोई भी सम्मेलन सभी स्थितियों लिए उपयुक्त हो सकता है, लेकिन, pandasDataFrame के प्रदर्शन फ़ॉर्म के शीर्षलेख और कॉलम चौड़ाई को अनुकूलित करने के लिए कोई भी तरीका प्रदान करता है?

+0

मेरा मानना ​​है कि 'पांडा। set_option ('max_colwidth', [वांछित-अधिकतम]) 'को अपना एन पूरा करना चाहिए ईड्स, हालांकि यह अभी काम नहीं कर रहा है। अधिक जानकारी के लिए [यह प्रश्न] देखें (https://stackoverflow.com/questions/45883201/how-to-limit-width-of-column-headers-in-pandas)। –

उत्तर

0

यह एक हैक का एक छोटा सा है जो गैर-मानक तरीके से पांडा की बहु-अनुक्रमणिका सुविधा का उपयोग करता है, हालांकि मुझे ऐसा करने में कोई महत्वपूर्ण समस्या नहीं दिखाई देती है। बेशक, एक साधारण सूचकांक के बजाय बहु-सूचकांक का उपयोग करने से कुछ जटिलता बढ़ी है।

cols = df.columns 
lencols = [ int(len(c)/2) for c in cols ] 

df.columns = pd.MultiIndex.from_tuples( 
       tuple((c[:ln], c[ln:]) for c, ln in zip(cols, lencols))) 

परिणाम:

  bar estimated_bac inhibit inhibitor_c 
     code kground_signal or_code oncentration 
0 R00577279   133  IRB  0.001 
1 R00577279   189  SNZ  0.001 
2 R00577279   101  CMY  0.001 
3 R00577279   112  BRC  0.001 
4 R00577279   244  ISB  0.001 

तुम भी एक शब्दकोश बनाने की जरूरत है जब तक & कम नाम के बीच परिवर्तित करने के लिए विचार कर सकते हैं:

संबंधित मुद्दे