2017-11-20 4 views
0

私は、私のデータフレームをExcelの方法で見るのに役立つので、background_gradientを使用するのが好きです。
しかし、色を別のデータフレームの図にマップする方法があるかどうかは疑問です。
例えば、私がしたいことは、zフレームのデータフレームを使用してデータフレームを色づけして、異常値の値をすばやく見ることができるようにすることです。私はそれがスタイルA.パンダスタイル - 背景他のデータフレームを使用するグラデーション

+0

値のデータフレームBからスタイルAを意味する方法B.行インデックスと列インデックスに基づいてセルを別のデータフレームから着色するのと同じように? – Dark

+0

はいBに適用されたbackground_gradientで作成された色を使用し、Aでこれらの色を使用します。 –

+0

私の答えはあなたが探しているものですか? – Dark

答えて

1

にデータフレームBの値を使用するように私はからスタイルを転送するためbackground_gradient codeを変更すること以外の別の方法を見ないbackground_gradientを使用する方法を思ったんだけど

A = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c']) 
B = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c']) 
A.style.background_gradient(???) 

他すなわち

import pandas as pd 
import matplotlib.pyplot as plt 
from matplotlib import colors 

def b_g(s, cmap='PuBu', low=0, high=0): 
    # Pass the columns from Dataframe A 
    a = A.loc[:,s.name].copy() 
    rng = a.max() - a.min() 
    norm = colors.Normalize(a.min() - (rng * low), 
         a.max() + (rng * high)) 
    normed = norm(a.values) 
    c = [colors.rgb2hex(x) for x in plt.cm.get_cmap(cmap)(normed)] 
    return ['background-color: %s' % color for color in c] 

B.style.apply(b_g,cmap='PuBu') 

出力に1つのデータフレーム:

Dataframes

希望する

+0

バラスに感謝します。私はそれがそれを行う方法になると思った。それを得るためのコードを表示していただきありがとうございます。 よろしく –

+0

とにかくスタイナーオブジェクトをpng/pdfに保存しますか? –

+0

@ thomas.mac私は、スタイナーオブジェクトをpngに保存することはできないと思います。その答えは、異なるデータフレームにスタイルを適用し、新しいデータフレームで同じスタイルが適用されるようにスタイルを返すようなものです。この解法は、両方の形が等しい場合にのみ機能します。 – Dark

関連する問題