İyi çalışan dinamik bir DataFrame'im var, ancak DataFrame'e eklenecek veri olmadığında bir hata alıyorum. Bu nedenle, yalnızca sütun adlarıyla boş bir DataFrame oluşturmak için bir çözüme ihtiyacım var.
Şimdilik böyle bir şeye sahibim:
df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted.
Not: Sütun adlarının hala bir DataFrame'de görünmesi önemlidir.
Ama bunu böyle kullandığımda, sonuç olarak şöyle bir şey elde ediyorum:
Index([], dtype='object')
Empty DataFrame
"Boş DataFrame" kısmı iyidir! Ancak Dizin olayı yerine sütunları göstermem gerekiyor.
Düzenle:
Bulduğum önemli bir şey: Bu DataFrame'i Jinja2 kullanarak bir PDF'ye dönüştürüyorum, bu yüzden ilk önce bunu HTML'ye çıkarmak için bir yöntem çağırıyorum:
df.to_html()
Sanırım sütunların kaybolduğu yer burası.
Düzenleme2: Genel olarak şu örneği izledim: http://pbpython.com/pdf-reports.html . CSS de bağlantıdan. Veri çerçevesini PDF'ye göndermek için yaptığım şey bu:
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"])
Düzenleme3:
Veri çerçevesini oluşturulduktan hemen sonra yazdırırsam aşağıdakileri alırım:
[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: []
Bu makul görünüyor, ancak template_vars'ı yazdırırsam:
'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>'
Görünüşe göre sütunlar zaten eksik.
E4: Aşağıdakileri yazdırırsam:
print(df.to_html())
Şu sonucu zaten alıyorum:
<table border="1" class="dataframe">
<tbody>
<tr>
<td>Index([], dtype='object')</td>
<td>Empty DataFrame</td>
</tr>
</tbody>
</table>