Reputation: 661
I would like to add a table title in the out put. It's relatively easy to do this in r
with
flextable
, you just have to use function set_caption()
, is there a similar package in python
with pandas
dataframe (maybe PTable
)?
This is what I have right now,
and this is what I would like to have
Please help, thanks guys!
Upvotes: 43
Views: 116075
Reputation: 81
styles = [dict(selector="caption",
props=[("text-align", "center"),
("font-size", "150%"),
("color", 'black')])]
df = df.style.set_caption("funcioasadsaaaa").set_table_styles(styles)
df
Upvotes: 8
Reputation: 321
It appears this does not set the caption 'inplace', like:
df.reset_index(drop=True, inplace=True)
is the same as:
df = df.reset_index(drop=True)
Instead try:
df = df.style.set_caption('Top 10 Fields of Research by Aggregated Funding Amount')
Upvotes: 22
Reputation: 204
Try this
df.style.set_table_attributes("style='display:inline'").set_caption('Caption table')
The output, with the title (hi-lighted in yellow) that will be displayed, is shown below
Upvotes: 10
Reputation: 1610
Have you tried this doing this?
df.style.set_caption("Hello World")
Source: Pandas Styling
EDIT:
Here's an alternative way to present your table if you're okay with using matplotlib
import matplotlib.pyplot as plt
import pandas as pd
my_frame = pd.DataFrame(data={'simulation1':[71,4.8,65,4.7],
'simulation2':[71,4.8,69,4.7],
'simulation3':[70,3.8,68,4.9],
'experiment':[70.3,3.5,65,4.4]})
#my_frame Display pandas table
fig = plt.figure(figsize = (8, 2))
ax = fig.add_subplot(111)
ax.table(cellText = my_frame.values,
rowLabels = my_frame.index,
colLabels = my_frame.columns,
loc = "center"
)
ax.set_title("Top 10 Fields of Research by Aggregated Funding Amount")
ax.axis("off");
Upvotes: 57
Reputation: 351
Try this.
df.style.set_caption('Top 10 Fields of Research by Aggregated Funding Amount')
Upvotes: 0