J'ai étudié la documentation de style de pandas mais je ne suis pas en mesure d'obtenir exactement une réponse particulière et précise à ma question. Je lis un fichier Excel en utilisant dataframe et je traite cette dataframe dans mon programme. Enfin J'écris une trame de données traitée dans un autre fichier Excel existant à l'aide de la bibliothèque xlwings.
J'utilise-
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
.
Avant d'écrire ce dataframe dans un autre Excel existant, je souhaite modifier la taille de la police du texte entier dans mon dataframe final. Je ne parviens pas à trouver le moyen de le faire.
J'ai trouvé le code suivant dans pandas document de style pour y parvenir-
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')])
]
J'ai utilisé le code ci-dessus dans mon programme mais la taille de la police de mon dataframe reste la même, cela ne crée aucun effet sur la taille de la police. J'ai également essayé d'autres méthodes utilisant le style, mais la taille de la police reste la même.
Quelqu'un peut-il me dire de manière très simple comment modifier uniquement la taille de la police de mon dataframe final en utilisant pandas ou toute autre bibliothèque. Parce que j'ai essayé de nombreuses façons, mais aucune ne fonctionne pour moi Je veux seulement changer la taille de la police et je ne veux pas faire plus de style avec ma police.
Vous pouvez définir une ou plusieurs propriétés pour chaque cellule en utilisant 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')
Vous pouvez également utiliser la méthode apply()
pour personnaliser des cellules spécifiques:
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')
Vous pouvez également utiliser la méthode applymap
qui fonctionne élément par élément. Vous pouvez trouver plus d'exemples dans la documentation .
J'espère que cela t'aides.