我有一个运行良好的动态数据帧,但是当没有数据添加到数据帧中时,我会得到一个错误。因此,我需要一个解决方案来创建一个只有列名的空数据帧
现在我有这样的东西:
请注意,现在插入了行数据。
PS:列名仍然出现在数据帧中是很重要的
但当我这样使用它时,我得到的结果是:
索引([],dtype='object')
空数据帧
“空数据帧”部分很好!但是我需要显示列,而不是索引
编辑:
我发现了一件重要的事情:我正在使用Jinja2将此数据帧转换为PDF,因此我调用了一个方法,首先将其输出为HTML,如下所示:
df.to_html()
我想这就是专栏迷失的地方
编辑2:
一般来说,我遵循以下示例:http://pbpython.com/pdf-reports.html. css也来自链接。
这就是我将数据帧发送到PDF的方法:
env=Environment(loader=FileSystemLoader('.'))
template=env.get\u template(“pdf\u report\u template.html”)
template_vars={“我的数据框架”:df.to_html()}
html\u out=template.render(模板变量)
HTML(string=HTML\u out)。编写pdf(“my\u pdf.pdf”,样式表=[“pdf\u report\u style.css”])
编辑3:
如果在创建后立即打印出数据帧,则会得到以下结果:
[0行x 9列]
空数据帧
列:[列a,列b,列c,列d,
e列,f列,g列,
第h列,第i列]
索引:[]
这似乎是合理的,但如果我打印出模板变量:
'my_dataframe':'<;表border=“1”class=“dataframe”>\n<;t车身>\n<;tr>\n<;td>;索引([],dtype=\'object\')</td>\n<;td>;空数据帧</td>\n</tr>\n</t车身>\n</表>;'
而且这些柱子似乎已经不见了
E4:
如果我打印出以下内容:
打印(df.to_html())
我已经得到了以下结果:
<;表border=“1”class=“dataframe”>;
<;t车身>;
<;tr>;
<;td>;索引([],dtype='object')</td>;
<;td>;空数据帧</td>;
</tr>;
</t车身>;
</表>;
您可以使用列名或索引创建空数据框:
[4]on
:将熊猫作为pd导入
At[5]on:df=pd.DataFrame(列=['A','B','C','D','E','F','G'])
In[6]:df
Output[6]:
空数据帧
列:[A、B、C、D、E、F、G]
索引:[]
或
[7]on
:df=pd.DataFrame(索引=范围(1,10))
In[8]:df
Output[8]:
空数据帧
列:[]
索引:[1,2,3,4,5,6,7,8,9]
编辑:
即使在你修改了.to_html之后,我也无法复制。这:
df=pd.DataFrame(列=['A','B','C','D','E','F','G'])
df.to_html('test.html'))
产生:
<;表border=“1”class=“dataframe”>;
<;thead>;
<;tr style=“文本对齐:右;”gt;
<;th></th>;
<;th>;A</th>;
<;th>;B</th>;
<;th>;C</th>;
<;th>;D</th>;
<;th>;E</th>;
<;th>;F</th>;
<;th>;G</th>;
</tr>;
</thead>;
<;t车身>;
</t车身>;
</表>;