熊猫表格式

如果您还不知道如何在潜意识中将数据直接传输给客户,或者最糟糕的是,消息的文本太松弛,那么您将需要有关如何使表的解释过程更快,更舒适的信息。



例如,excel为此使用了条件格式迷你图在本文中,我们将看到如何使用Python和库来可视化数据pandas:我们将使用DataFrame.styleand属性Options and settings



设置基本渲染



我们导入库:pandas用于处理数据和seaborn加载经典数据集penguins



import pandas as pd
import seaborn as sns


用于pd.set_option配置输出,以便:



  • 表中的行数不超过5;
  • 无论单元格的长度如何,单元格中的文本都可以完全反映出来(如果单元格中有您要查看的长标题或URL,这将很方便);
  • 所有数字均以两位小数表示;


pd.set_option('max_rows', 5)
pd.set_option('display.max_colwidth', None)
pd.set_option('display.float_format', '{:.2f}'.format)


让我们阅读并查看数据框。



penguins = sns.load_dataset(‘penguins’)
penguins


图片



如果需要将设置恢复为默认值,请使用pd.reset_option例如,这样,如果我们想一次更新所有设置:



pd.reset_option('all')


属性的完整列表set_option



设置表格中的数据显示



数字格式,空格和大小写



数据框pandas具有DataFrame.style根据行或列的条件更改单元格内容显示的属性



, , .



(penguins
 .head(5)
 .style
 .format('{:.1f}', na_rep='-')
 .format({'species': lambda x:x.lower(),
          'island': lambda x:x.lower(),
          'sex': lambda x: '-' if pd.isna(x) else x.lower()
         })
)


图片



, , ₽ :



(df
.style
.format({'price': '₽{:.2f}'})
)


— !



(, , )



, , , . subset.



numeric_columns = ['bill_length_mm',
                   'bill_depth_mm',
                   'flipper_length_mm',
                   'body_mass_g']


, 5 .



(penguins
 .head(5)
 .style
 .format('{:.1f}', na_rep='-')
 .format({'species': lambda x:x.lower(),
          'island': lambda x:x.lower(),
          'sex': lambda x: '-' if pd.isna(x) else x.lower()
         })
 .highlight_null(null_color='lightgrey')
 .highlight_max(color='yellowgreen', subset=numeric_columns)
 .highlight_min(color='coral', subset=numeric_columns)
)


图片



, 5 2 (!) .



: - Adelie.



Bar chart



, Adelie .



adelie_female = (penguins[(penguins['species'] == 'Adelie') & 
                          (penguins['sex'] == 'FEMALE')]
                 .copy()
                )

adelie_female['flipper_l_var'] = ((adelie_female['flipper_length_mm']- 
                                                 adelie_female['flipper_length_mm'].mean()).round())


, 'flipper_l_var'. :



  • (subset), ;
  • (align): mid — , , . ;
  • (color). 2 : ;
  • (vmin, vmax).


set_properties , 'flipper_l_var' .



(adelie_female
 .head(5)
 .style
 .format('{:.1f}', na_rep='-')
 .format({'species': lambda x:x.lower(),
          'island': lambda x:x.lower(),
          'sex': lambda x: '-' if pd.isna(x) else x.lower()
         })
 .bar(subset=['flipper_l_var'],
      align='mid',
      color=['coral', 'yellowgreen'],
      vmin=adelie_female['flipper_l_var'].min(),
      vmax=adelie_female['flipper_l_var'].max()
     )
 .set_properties(**{'text-align': 'center'}, subset='flipper_l_var')
)


图片



Heatmap



. , .



, .



species_stat=(penguins
             .groupby('species')
             .agg(penguins_count=('species','count'),
                  mean_bill_length=('bill_length_mm', 'mean'),
                  mean_bill_depth=('bill_depth_mm', 'mean'),
                  mean_flipper_length=('flipper_length_mm', 'mean'),
                  mean_body_mass=('body_mass_g', 'mean'),
                 )
             )


图片



, , - , .



. , ?! -, , .



(species_stat
 .T
 .style
 .format("{:.1f}")
 .background_gradient(cmap='Blues', axis=1)
)


图片



background_gradient :



  • (cmap): Blues. ;
  • (axis=1).




pandas使用DataFrame.style格式化表格Options and settings可以简化工作,或者至少可以提高代码和报表的可读性。但是,当然要在可视化阶段之前故意进行数据类型,间隙和寄存器的处理。



此外,您可以处理:






All Articles