上一篇介紹了`DataFrame`的顯示參數,主要是對`DataFrame`中值進行調整。 本篇介紹`DataFrame`的顯示樣式的調整,顯示樣式主要是對錶格本身的調整,比如顏色,通過顏色可以突出顯示重要的值,觀察數據時可以更加高效的獲取主要信息。 下麵介紹一些針對單個數據和批量數據的樣式調整方式 ...
上一篇介紹了DataFrame
的顯示參數,主要是對DataFrame
中值進行調整。
本篇介紹DataFrame
的顯示樣式的調整,顯示樣式主要是對錶格本身的調整,
比如顏色,通過顏色可以突出顯示重要的值,觀察數據時可以更加高效的獲取主要信息。
下麵介紹一些針對單個數據和批量數據的樣式調整方式,讓DataFrame
的數據信息更加的一目瞭然。
1. 多列顯示格式
每個DataFrame
都有個style
屬性,通過這個屬性可以來調整顯示的樣式。
下麵的示例,一次調整多個類型的列的顯示。
import pandas as pd
df = pd.DataFrame(
{
"日期": ["2022-10-01", "2022-11-11",
"2022-12-12", "2023-01-01", "2023-02-02"],
"單價": [1099.5, 8790.0, 12.55, 10999.0, 999.5],
"數量": [1, 3, 1200, 4, 5],
}
)
df["日期"] = pd.to_datetime(df["日期"])
col_format = {
"日期": "{:%Y/%m/%d}",
"單價": "¥{:,.2f}",
"數量": "{:,} 件"
}
df.style.format(col_format)
調整之後:
- 日期格式改成用
/
來分割 - 單價前加了人民幣符號,並且用逗號作為千位分隔符
- 數量用逗號作為千位分隔符,加了單位 件
調整之後,表格中的內容放入報告中會更加美觀。
2. 背景色樣式
除了調整數值的顯示樣式,更強大的功能是,我們可以調整單元格的顏色。
比如,下麵的數據,我們先計算出總價,
然後用紅色背景標記出總價最小的訂單,用綠色背景標記出總價最大的訂單。
df = pd.DataFrame(
{
"訂單號": ["0001", "0002",
"0003", "0004", "0005"],
"單價": [1099.5, 8790.0,
12.55, 10999.0, 999.5],
"數量": [1, 3, 1200, 4, 5],
}
)
df["總價"] = df["單價"] * df["數量"]
col_format = {
"單價": "¥{:,.2f}",
"總價": "¥{:,.2f}",
}
df.style.format(col_format).highlight_min(
"總價", color="red"
).highlight_max(
"總價", color="lightgreen"
)
3. 漸變色樣式
添加背景色之後,只能看出哪個訂單總價最高,哪個訂單總價最低。
對於其他的訂單,沒有直觀的印象,所以,下麵我們更進一步用漸變色來標記總價列。
總價越高,背景色越深,這樣就對所有訂單的總價有了直觀的印象。
df = pd.DataFrame(
{
"訂單號": ["0001", "0002", "0003", "0004", "0005"],
"單價": [1099.5, 8790.0, 12.55, 10999.0, 999.5],
"數量": [1, 3, 1200, 4, 5],
}
)
df["總價"] = df["單價"] * df["數量"]
col_format = {
"單價": "¥{:,.2f}",
"總價": "¥{:,.2f}",
}
df.style.format(
col_format
).background_gradient(
subset="總價", cmap="Greens"
)
4. 條形圖樣式
再進一步,用條形圖+漸變色的方式顯示總價信息。
這樣,不僅可以看出總價的高低,還能大致看出究竟高了多少。
df = pd.DataFrame(
{
"訂單號": ["0001", "0002", "0003", "0004", "0005"],
"單價": [1099.5, 8790.0, 12.55, 10999.0, 999.5],
"數量": [1, 3, 1200, 4, 5],
}
)
df["總價"] = df["單價"] * df["數量"]
col_format = {
"單價": "¥{:,.2f}",
"總價": "¥{:,.2f}",
}
df.style.format(
col_format
).bar(
subset="總價", cmap="Wistia"
)
5. 總結回顧
通過pandas
本身的樣式參數,可以美化分析的結果,直接用於最後的報告或者PPT
中。
pandas
小技巧系統至此暫時告一段落,接下來,準備開始另一個關鍵的數據分析庫:numpy
。