使用以下玩具数据框:
import pandas as pd
df = pd.DataFrame(
{
"col1": ["A", "F", "A", "F", "A", "A", "A", "A"],
"col2": ["B", "B", "B", "B", "B", "G", "G", "B"],
"col3": ["C", "H", "C", "H", "C", "I", "C", "I"],
"col4": ["D", "E", "D", "E", "E", "D", "D", "E"],
}
)
这是一种方法:
# Sort value and add an unique identifier to identical rows
df = df.sort_values(["col1", "col2", "col3", "col4"]).reset_index(drop=True)
df["hash"] = df.apply(lambda x: hash("".join(x)), axis=1)
# Attribut a unique unique color to each identifier
COLORS = [
"#F0A3FF",
"#0075DC",
"#FFA405",
"#5EF1F2",
"#FFFF00",
"#E0FF66",
"#FF5005",
"#FFA8BB",
"#2BCE48",
"#993F00",
]
color_mapping = {}
for value in df["hash"].unique():
color = COLORS.pop(0)
if value not in color_mapping:
color_mapping[value] = color
# Color rows (run in a jupyter notebook)
df.style.apply(
lambda v: [f"background-color: {color_mapping.get(v['hash'], '')}"] * df.shape[1],
axis=1,
).hide_columns("hash")