2016-10-31 23 views
6

tôi có thể đánh dấu một cột bằng cách sử dụng cú phápLàm thế nào để làm nổi bật cả một hàng và một cột cùng một lúc trong gấu trúc

import pandas as pd 
df = pd.DataFrame([[1,0],[0,1]]) 
df.style.apply(lambda x: ['background: lightblue' if x.name == 0 else '' for i in x]) 

enter image description here

Tương tự như vậy tôi có thể làm nổi bật một hàng bằng cách thông qua axis=1:

df.style.apply(lambda x: ['background: lightgreen' if x.name == 0 else '' for i in x], 
       axis=1) 

enter image description here

Tuy nhiên tôi không thể wo rk ra làm thế nào để làm cả hai cùng một lúc; vấn đề là khi tôi sử dụng applymap, tôi chỉ nhận được các giá trị chứ không phải tên của chuỗi mà chúng đến từ đó.

Trả lời

6

Làm thế nào để làm điều gì đó như thế này? Liệt kê các cột và kiểm tra chỉ số trong khi xây dựng danh sách phong cách:

df.style.apply(lambda x: ['background: lightblue' if x.name == 0 or i == 0 else '' 
          for i,_ in x.iteritems()]) 

enter image description here

Hoặc nếu bạn có sở thích màu sắc:

df.style.apply(lambda x: [('background: lightblue' if x.name == 0 
          else ('background: lightgreen' if i == 0 else '')) 
          for i,_ in x.iteritems()]) 

enter image description here

+0

vâng đây là đúng cách ... có vẻ hiển nhiên bây giờ, chỉ gặp rắc rối khi gói tôi đi xung quanh vì lý do nào đó! – maxymoo

Các vấn đề liên quan