web-dev-qa-db-ja.com

pandasを使用してデータフレーム内のテキストのフォントサイズを変更する方法

私はpandasのスタイリングドキュメントを調べましたが、質問の特定の正確な答えを正確に得ることができません。データフレームを使用してExcelファイルを読み取り、そのデータフレームをプログラムで処理しています。最後にxlwingsライブラリを使用して、処理済みのデータフレームを別の既存のExcelファイルに書き込んでいます。

使ってます-

import pandas as pd
import xlwings as xw
df = pd.read_Excel("file.xlsx")

.
.  #Code for processing dataframe and writing dataframe in another Excel file
.

別の既存のExcelでこのデータフレームを書き込む前に、最終的なデータフレーム内のテキスト全体のフォントサイズを変更したいと思います。私はそれを行う方法を得ることができません。

私はpandasドキュメントをスタイリングしてそれを達成するために次のコードを見つけました-

def magnify():
    return [dict(selector="th",
                 props=[("font-size", "4pt")]),
            dict(selector="td",
                 props=[('padding', "0em 0em")]),
            dict(selector="th:hover",
                 props=[("font-size", "12pt")]),
            dict(selector="tr:hover td:hover",
                 props=[('max-width', '200px'),
                        ('font-size', '12pt')])
]

上記のコードをプログラムで使用しましたが、データフレームのフォントサイズは同じままです。フォントサイズに影響はありません。私もスタイリングを使用して他のいくつかの方法を試しましたが、フォントサイズは同じままです。

pandasまたは他のライブラリを使用して、最終的なデータフレームのフォントサイズを変更する方法を非常に簡単な方法で教えてもらえますか?フォントサイズを変更したいだけで、フォントのスタイルを変更したくありません。

2
Vishav Gupta

set_properties() を使用して、各セルに1つ以上のプロパティを設定できます。

_df = pd.DataFrame({
    'date': ('2019-11-29', '2016-11-28'),
    'price': (0, 1),
})

df = df.style.set_properties(**{
    'background-color': 'grey',
    'font-size': '20pt',
})
df.to_Excel('test.xlsx', engine='openpyxl')
_

また、apply()メソッドを使用して、特定のセルをカスタマイズできます。

_def custom_styles(val):
    # price column styles
    if val.name == 'price':
        styles = []
        # red prices with 0
        for i in val:
            styles.append('color: %s' % ('red' if i == 0 else 'black'))
        return styles
    # other columns will be yellow
    return ['background-color: yellow'] * len(val)


df = pd.DataFrame(...)
df = df.style.apply(custom_styles)
df.to_Excel('test.xlsx', engine='openpyxl')
_

また、要素ごとに機能するapplymapメソッドを使用できます。他の例 ドキュメント内 を見つけることができます。

お役に立てれば。

1
Danila Ganchar