मेरे पास एक डायनेमिक डेटाफ़्रेम है जो ठीक काम करता है, लेकिन जब डेटाफ़्रेम में कोई डेटा नहीं जोड़ा जाता है तो मुझे एक त्रुटि मिलती है। और इसलिए मुझे केवल कॉलम नामों के साथ खाली DataFrame बनाने के लिए समाधान की आवश्यकता है।
अभी के लिए मेरे पास कुछ इस तरह है:
df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted.
पुनश्च: यह महत्वपूर्ण है कि स्तंभ के नाम अभी भी एक DataFrame में दिखाई देंगे।
लेकिन जब मैं इसे इस तरह से उपयोग करता हूं तो मुझे इसके परिणामस्वरूप कुछ मिलता है:
Index([], dtype='object')
Empty DataFrame
"खाली डेटाफ़्रेम" भाग अच्छा है! लेकिन इंडेक्स चीज़ के बजाय मुझे अभी भी कॉलम प्रदर्शित करने की आवश्यकता है।
संपादित करें:
एक महत्वपूर्ण बात जो मुझे पता चली: मैं इस डेटाफ्रेम को एक जीनजे 2 का उपयोग करके एक पीडीएफ में परिवर्तित कर रहा हूं, इसलिए इसलिए मैं इसे HTML की तरह इसे पहले आउटपुट करने के लिए एक विधि कह रहा हूं:
df.to_html()
यह वह जगह है जहां कॉलम खो जाता है मुझे लगता है।
Edit2: सामान्य तौर पर, मैंने इस उदाहरण का अनुसरण किया: http://pbpython.com/pdf-reports.html । सीएसएस भी लिंक से है। यही मैं डेटाफ्रेम को पीडीएफ में भेजने के लिए करता हूं:
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template("pdf_report_template.html")
template_vars = {"my_dataframe": df.to_html()}
html_out = template.render(template_vars)
HTML(string=html_out).write_pdf("my_pdf.pdf", stylesheets=["pdf_report_style.css"])
Edit3:
यदि मैं निर्माण के बाद डेटाफ्रेम को सही तरीके से प्रिंट करता हूं तो मुझे अनुवर्ती मिलता है:
[0 rows x 9 columns]
Empty DataFrame
Columns: [column_a, column_b, column_c, column_d,
column_e, column_f, column_g,
column_h, column_i]
Index: []
यह उचित प्रतीत होता है, लेकिन अगर मैं टेम्पलेट_ प्रिंट निकालता हूं:
'my_dataframe': '<table border="1" class="dataframe">\n <tbody>\n <tr>\n <td>Index([], dtype=\'object\')</td>\n <td>Empty DataFrame</td>\n </tr>\n </tbody>\n</table>'
और ऐसा लगता है कि कॉलम पहले ही गायब हैं।
E4: अगर मैं निम्नलिखित प्रिंट करता हूं:
print(df.to_html())
मुझे निम्नलिखित परिणाम पहले से ही मिले:
<table border="1" class="dataframe">
<tbody>
<tr>
<td>Index([], dtype='object')</td>
<td>Empty DataFrame</td>
</tr>
</tbody>
</table>