当前位置: 首页 > 科技观察

七个有用的Pandas显示选项

时间:2023-03-15 20:00:21 科技观察

Pandas是数据科学中常用的功能强大的Python库。它可以加载和操作来自各种来源的数据集。使用Pandas时,默认选项对大多数人来说应该没问题。但在某些情况下,我们可能希望改变显示内容的格式。所以我们需要借助Pandas的一些自定义功能来帮助我们自定义内容的展示方式。1.控制显示的行数在查看数据时,我们希望看到比默认行数(默认行数为10)多或少的行数。arr_data=np.random.default_rng().uniform(0,100,size=(100,5))pd.DataFrame(arr_data,columns=list('ABCDE'))可以看到,包括前5条数据默认行和最后5行的框架。因为这可以防止pandas在调用数据帧时显示大量数据而减慢您的计算机速度。这里有两个选项可用于控制显示的行数。第一个是display.max_rows,它控制截断前显示的最大行数。如果数据中的行数超过这个值,显示将被截断。默认设置为60。如果要显示所有行,需要将display.max_rows设置为None。如果数据非常大,这可能会占用大量资源并减慢计算速度。pd.set_option('display.max_rows',None)这样就可以看到df中的所有行了。如果数据的行数多于max_rows设置,则必须将display.min_rows参数更改为要显示的值。您还需要确保max_rows参数大于min_rows。pd.set_option('display.min_rows',20)如果你设置min_rows为20,那么在查看的时候,你会看到顶部10行,底部10行。2.控制显示的列数当处理列数较多的数据集时,pandas会截断显示,默认显示20列。下图中第9列和第15列之间的三个点(省略号)表示上面的数据被截断了,使用如下代码显示:arr_data=np.random.default_rng().uniform(0,100,size=(100,25))df=pd.DataFrame(arr_data)df要在显示器上看到更多的列,可以更改display.max_columns参数pd.set_option('display.max_columns',30)这样做最多显示30列。但这可能会导致其他问题,例如当有图片时这会变得很难看。3.禁止科学记数法在处理科学数据的时候,经常会遇到非常大的数字。一旦数字达到数百万,Pandas就会将它们重新格式化为科学记数法,这可能会有帮助,但并非总是如此。要生成具有非常大值的数据,可以使用以下代码。arr_data=np.random.default_rng().uniform(0,10000000,size=(10,3))df=pd.DataFrame(arr_data)df如果想以没有科学记数法的完整形式显示这些数字。这可以通过更改float_format显示选项并传入lambda函数来实现。这将重新格式化显示,使其具有没有科学记数法且最多保留3位小数的值。pd.set_option('display.float_format',lambdax:f'{x:.3f}')如果你想让它看起来更好看,你可以在千位之间添加一个逗号分隔符。下面的代码可能看起来与上面的代码相同,但是如果您仔细观察,会发现代码的f'{x:部分后面有一个逗号。pd.set_option('display.float_format',lambdax:f'{x:,.3f}')4.改变数据的浮点精度在某些情况下,数据可能有太多的值后小数点,所以看起来很乱。默认情况下,Pandas会显示小数点后6位。为了更容易阅读,可以通过调用display.precision来减少显示的值的数量。pd.set_option('display.precision',2)对于数字列,浮点精度已降低到2。此设置仅更改数据的显示方式。它不会更改基础数据值。5.控制浮点格式在某些情况下,数字可以表示百分比或货币值。如果是这种情况,用正确的单位格式化它们会很方便。要在列后添加百分比符号,您可以调用display.float_format选项并使用f-string传入您要显示的格式:pd.set_option('display.float_format',f'{:,.3f}%')要以美元符号开头,可以这样更改代码:pd.set_option('display.float_format',f'${:,.2f}')6.更改默认的Pandas绘图库做的时候探索性数据分析,通常需要快速生成数据图表。可以使用matplotlib构建绘图,但在Pandas中,可以使用.plot()方法通过几行代码来完成绘图。Pandas为我们提供了一系列可以使用的绘图库:matplotlibhvplot>=0.5.1holoviewspandas_bokehplotly>=4.8altair要更改当前默认的绘图库,您需要更改plotting.backend选项。pd.options.plotting.backend="hvplot"这样,在使用.plot方法创建plot时,设置库df.plot(kind='scatter',x='1',y='2')会被调用7.重置显示选项如果你想把某个特定选项的参数设置回默认值,可以调用reset_option方法,传入你要重置的选项。pd.reset_option('display.max_rows')或者您可以将所有参数作为参数传递以将它们全部更改回默认值。pd.reset_option('all')如果你想一次设置多个选项,你可以这样做。settings={'max_columns':30,'min_rows':40,'max_rows':30,'precision':3}foroption,valueinsettings.items():pd.set_option("display.{}".format(option),value)这样做有助于节省时间、减少编写的代码量并提高可读性。总之,Pandas是一个功能强大的库,但默认选项可能不适合您的特定需求。本文介绍了一些可以改善您查看数据方式的常用选项。