我使用Pandas DataFrames的style屬性來創建用於發送電子郵件的HTML表格。 我遇到的問題是,我有一個日期時間索引,它顯示爲日期時間戳,而我希望它顯示爲日期。我對時間部分不感興趣。在解釋器中,數據框打印正確(僅顯示日期部分)。但是,當使用表格的style屬性進行風格化後,它會生成HTML,同時也會放出時間部分。我研究過使用style.format(),但我無法訪問索引列。 我會重置索引,以使日期時間列成爲普通列......但我的標題列是多指標。如果我展平並且不使用索引,表格看起來很奇怪。使用熊貓的DataFrame()格式化日期時間索引風格
不幸的是,我發現這個.style文檔中:
限制
數據框只(使用Series.to_frame()的方式)的索引和列 必須是唯一沒有大再版,和表現不是很好;這是用於彙總數據框的 您只能對值進行樣式設置,而不能對 索引或列進行樣式設置您只能應用樣式,不能插入新的HTML 實體其中一些將在未來處理。
https://pandas.pydata.org/pandas-docs/stable/style.html#Limitations
我張貼,看看是否有人有我怎樣才能解決這個得到任何想法。謝謝!
例表中顯示了問題: example_table_link
代碼生成表:
account_day_df = merged[['Day', 'Metric1', 'Metric2', 'Metric3', 'Metric4', 'Campaign type']]
account_day_df = account_day_df.groupby(['Day', 'Campaign type']).sum()
account_day_df.loc[:, 'Metric5'] = account_day_df['Metric1']/account_day_df['Metric4']
account_day_df = account_day_df.unstack('Campaign type')
html += (
account_day_df.style
.background_gradient(cmap=cm, subset=['Metric5'])
.set_table_attributes('border="1" class="dataframe table table-hover table-bordered"')
.render(i)
)
但你如何做到這一點,而在提供的示例中保存我的多指數? –
在你的例子中,你有多列索引。更改索引不會混淆列。 –