如何使用熊猫更改数据框中文本的字体大小

Vis*_*pta 5 python styling dataframe 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
.
Run Code Online (Sandbox Code Playgroud)

在另一个现有的 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')])
]
Run Code Online (Sandbox Code Playgroud)

我在我的程序中使用了上面的代码,但我的数据框的字体大小保持不变。它对字体大小没有影响。我也尝试过其他一些使用样式的方法,但字体大小保持不变。

任何人都可以以非常简单的方式告诉我如何使用熊猫或任何其他库仅更改最终数据框的字体大小。因为我尝试了很多方法,但没有一种方法适合我。我只想更改字体大小,不想用我的字体做更多样式。

Dan*_*har 5

您可以使用set_properties()为每个单元格设置一个或多个属性。

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')
Run Code Online (Sandbox Code Playgroud)

您也可以使用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')
Run Code Online (Sandbox Code Playgroud)

您也可以使用按applymap元素工作的方法。您可以在 docs 中找到更多示例。

希望这可以帮助。