日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pandas之表格样式

發(fā)布時間:2023/11/29 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas之表格样式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在juoyter notebook中直接通過df輸出DataFrame時,顯示的樣式為表格樣式,通過sytle可對表格的樣式做一些定制,類似excel的條件格式。

df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) s = df.style print(s,type(s)) #<pandas.io.formats.style.Styler object at 0x000001CD7B409710> <class 'pandas.io.formats.style.Styler'>

?

對表格創(chuàng)建樣式有兩種方式,都需要額外定義一個處理樣式的函數(shù)

①df.style.applymap(func,*args,**kwargs):對DataFrame中的每一個元素都按照func的邏輯處理

# 將小于0.2的值字體設(shè)置為紅色,否則設(shè)置為黑色 df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) def lt_red(val):if val<0.2:color = 'red'else:color = 'black' # print(color)return ('color:%s'%color) df.style.applymap(lt_red)

②df.style.apply(func,axis=0,subset=**,*args,**kwargs):對DataFrame的行或列按照func的邏輯處理,axis默認(rèn)為0按照列處理,1按照行處理。

# 將A、C、D列中的每一列最大值背景顏色填充為黃色 def highlight_max(s):is_max = s == s.max()l = []for v in is_max:if v:l.append('background-color:yellow')else:l.append('') # print(l)return l df.style.apply(highlight_max,axis = 1,subset = ['A','C','D'])

? ? ? ?

?

如果在style中需要同時進(jìn)行行和列的切片,需要用到pandas的IndexSlice

# 對索引為2-5行,列為A、C、D中的每一列最大值背景顏色填充為黃色 df.style.apply(highlight_max,axis=1,subset = pd.IndexSlice[2:5,['A','B','C']]) ## df.loc[2:5,['A','C']].style.apply(highlight_max,axis=1)也可以實(shí)現(xiàn)
## 上一種方法會顯示所有的DataFrame內(nèi)容,然后對滿足條件的行和列做格式處理;而后一種方法是只顯示滿足條件的行和列,再做格式處理

? ??

?

?格式化DataFrame中的數(shù)值

df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) # df.style.format('{:.2%}',subset=['B','C']) #對所有符合條件的采用一種格式format,整個格式用''括起來 df.style.format({'A':'{:.2f}','B':'{:%}','C':'{:+}','D':'{:.2%}'}) #對不同的列采用不同的format,參數(shù)為一個字典,key為列名,value為格式 # A、B、C、D列的格式分別為2位小數(shù)、百分?jǐn)?shù)、前面加+號,2位小數(shù)的百分?jǐn)?shù)

?

定位空值df.style.highlight_null(null_color='red'),對空值設(shè)置背景顏色

對應(yīng)還有highlight_max()和highlight_min(),參數(shù)(subset=None, color='yellow', axis=0)

df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) df['B'][2] = np.nan df.style.highlight_null(null_color='red')

?

色彩映射

df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) df.style.background_gradient(cmap='Reds',axis = 1,low = 0,high = 1,subset = ['A','C','D']) # 按行處理,最小值對應(yīng)顏色表中的最淺色,最大值對應(yīng)顏色表中的最深色,1表示按行處理

?

?條形圖

df = pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D']) df.style.bar(width=100,subset=['A','C','D'],color='lightpink')

?

分段式構(gòu)建樣式

df.style.\bar(width=100,subset=['A'],color='lightpink').\highlight_max(axis = 1,color='red').\highlight_min(axis = 1,color='green') #除最后一行,每一行都以.\結(jié)尾

?

轉(zhuǎn)載于:https://www.cnblogs.com/Forever77/p/11336981.html

總結(jié)

以上是生活随笔為你收集整理的pandas之表格样式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。