[英]Pandas Styling: Conditional Formatting
我將以下格式應用於 pandas 數據框。
數據如下:
{'In / Out': {'AAA': 'Out',
'BBB': 'In',
'Total1': 'Out',
'CCC': 'In',
'DDD': 'In',
'Total2': 'In'},
'Mln': {'AAA': '$-1,707',
'BBB': '$1,200',
'Total1': '$-507',
'CCC': '$245',
'DDD': '$1,353',
'Total2': '$1,598'},
'US$ Mln': {'AAA': '$-258',
'BBB': '$181',
'Total1': '$-77',
'CCC': '$32',
'DDD': '$175',
'Total2': '$206'}}
有人可以告訴我如何編寫代碼嗎?
您必須根據.loc
使用pd.IndexSlice
。
像這樣。
idx = pd.IndexSlice[['Total1', 'Total2'], :]
# If you don't want to hard-code use this
idx = pd.IndexSlice[df.index[[2, 5]], :]
根據需要制作樣式功能。
# 1
def make_bold(val):
return 'font-weight: bold'
# For italic use 'font-style: italic'
# 2
def apply_color(s):
if s.isin(['In']).any():
return ['color: green' for val in s]
return ['color: red' for val in s]
您將df.style.applymap
用於元素方式, df.style.apply
用於列/行方式。
s = df.style.applymap(
make_bold, subset=pd.IndexSlice[["Total1", "Total2"], :] # subset=idx
).apply(apply_color, axis=1)
s
Output:
對於#3
您不能在index
或columns
上應用樣式另外,根據pandas style-docs
,在Limitations部分,
您只能設置值的樣式,而不能設置索引或列的樣式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.