Maison  >  Article  >  développement back-end  >  Article de 3000 mots, Pandas embellit votre tableau Excel !

Article de 3000 mots, Pandas embellit votre tableau Excel !

Python当打之年
Python当打之年avant
2023-08-10 15:15:111564parcourir


Cet article vous montrera comment embellir les nombres dans un Pandas DataFrame et utiliser des options de visualisation de style Pandas plus avancées pour améliorer votre capacité à analyser des données à l'aide de Pandas.

Exemples courants :

  • Utilisez des symboles monétaires lorsque vous traitez des valeurs monétaires. Par exemple, si vos données contiennent la valeur 25,00, vous ne savez pas immédiatement si cette valeur est du yuan chinois, du dollar américain, de la livre sterling ou d'une autre devise.
  • Le pourcentage est un autre indicateur utile, 0,05 ou 5% ? L’utilisation du symbole de pourcentage indique très clairement comment interpréter les données.
  • Les styles Pandas incluent également des outils plus avancés pour ajouter de la couleur ou d'autres éléments visuels à la sortie.

Analyse de cas

Cet article utilisera des données virtuelles pour l'expliquer à tout le monde. Les données sont des données de ventes de 2018 pour une organisation fictive.

Le lien de l'ensemble de données est le suivant :
https://www.aliyundrive.com/s/Tu9zBN2x81c

1. Importez les bibliothèques pertinentes et lisez les données

import numpy as np
import pandas as pd

df = pd.read_excel('2018_Sales_Total.xlsx')

L'effet est le suivant. suit : Article de 3000 mots, Pandas embellit votre tableau Excel !Lisez-les Après les données, nous pouvons faire un résumé rapide pour voir combien nos clients ont acheté chez nous et quel est leur montant moyen d'achat. Par souci de simplicité, j'ai intercepté ici les 5 premières données.

df.groupby('name')['ext price'].agg(['mean', 'sum'])

Les résultats sont les suivants : Article de 3000 mots, Pandas embellit votre tableau Excel !

2. Ajouter un symbole monétaire

Quand vous regardez ces données, il est un peu difficile de comprendre l'échelle des nombres car vous avez 6 décimales et quelques nombres plus grands. De plus, il n’est pas clair s’il s’agit de dollars américains ou d’une autre devise. Nous pouvons résoudre ce problème en utilisant DataFrame style.format.

(df.groupby('name')['ext price']
 .agg(['mean', 'sum'])
 .style.format('${0:,.2f}'))

Les résultats sont les suivants : Article de 3000 mots, Pandas embellit votre tableau Excel !En utilisant la fonction format, vous pouvez utiliser toutes les capacités des outils de formatage de chaîne de python sur vos données. Dans ce cas, nous utilisons ${0:,.2f} pour mettre le premier signe dollar, ajouter une virgule et arrondir le résultat à deux décimales.

Par exemple, si nous voulons arrondir à 0 décimale, nous pouvons changer le format en ${0:,.0f}.

(df.groupby('name')['ext price']
 .agg(['mean', 'sum'])
 .style.format('${0:,.0f}'))

Les résultats sont les suivants :Article de 3000 mots, Pandas embellit votre tableau Excel !

3. Ajoutez un pourcentage

Si nous voulons voir les ventes totales par mois, nous pouvons utiliser le grouper pour résumer par mois et calculer la part mensuelle des ventes. pourcentage total des ventes annuelles.

monthly_sales = df.groupby([pd.Grouper(key='date', freq='M')])['ext price'].agg(['sum']).reset_index()
monthly_sales['pct_of_total'] = monthly_sales['sum'] / df['ext price'].sum()

Les résultats sont les suivants : Article de 3000 mots, Pandas embellit votre tableau Excel !Afin d'afficher plus clairement ce pourcentage, mieux vaut le convertir en pourcentage.

format_dict = {'sum':'${0:,.0f}', 'date': '{:%m-%Y}', 'pct_of_total': '{:.2%}'}
monthly_sales.style.format(format_dict).hide_index()

结果如下:Article de 3000 mots, Pandas embellit votre tableau Excel !

4. 突出显示数字

除了样式化数字,我们还可以设置 DataFrame 中的单元格样式。让我们用绿色突出显示最高的数字,用彩色突出显示最高、最低的数字。

(monthly_sales
 .style
 .format(format_dict)
 .hide_index()
 .highlight_max(color='lightgreen')
 .highlight_min(color='#cd4f39'))

结果如下:Article de 3000 mots, Pandas embellit votre tableau Excel !

5. 设置渐变色

另一个有用的函数是 background_gradient,它可以突出显示列中的值范围。

(monthly_sales.style
 .format(format_dict)
 .background_gradient(subset=['sum'], cmap='BuGn'))

结果如下:Article de 3000 mots, Pandas embellit votre tableau Excel !

6. 设置数据条

pandas样式功能还支持在列内绘制条形图。

(monthly_sales
 .style
 .format(format_dict)
 .hide_index()
 .bar(color='#FFA07A', vmin=100_000, subset=['sum'], align='zero')
 .bar(color='lightgreen', vmin=0, subset=['pct_of_total'], align='zero')
 .set_caption('2018 Sales Performance'))

结果如下:Article de 3000 mots, Pandas embellit votre tableau Excel !

7. 绘制迷你图

我认为这是一个很酷的功能。

import sparklines

def sparkline_str(x):
    bins=np.histogram(x)[0]
    sl = ''.join(sparklines(bins))
    return sl
    
sparkline_str.__name__ = "sparkline"
df.groupby('name')['quantity', 'ext price'].agg(['mean', sparkline_str])

结果如下:Article de 3000 mots, Pandas embellit votre tableau Excel !


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer