开发手册 欢迎您!
软件开发者资料库

Python pandas.DataFrame.squeeze函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.squeeze方法的使用。

DataFrame.squeeze(axis=None) [source]

将1维轴对象Squeeze成标量(scalars)。

具有单个元素的Series或数据类型被压缩为标量(scalars)。具有单列或单行的数据被Squeeze为一个Series。否则对象不变。

当不知道对象是Series还是DataFrame,但知道它只有一个列时,此方法最有用。在这种情况下,您可以安全地调用squeeze,以确保您拥有一个Series。

参数:

axis:{0‘index’, 1‘columns’, None}, 默认为 None

一个特定squeeze的轴。默认情况下,

所有长度为1的轴都被squeeze

返回值:

DataFrame, Series, scalar

挤squeeze轴或所有轴后的projection。

例子

>>> primes = pd.Series([2, 3, 5, 7])

切片可能会产生具有单个值的系列:

>>> even_primes = primes[primes % 2 == 0]>>> even_primes0    2dtype: int64>>> even_primes.squeeze()2

挤压每个轴上具有多个值的对象不会执行任何操作:

>>> odd_primes = primes[primes % 2 == 1]>>> odd_primes1    32    53    7dtype: int64>>> odd_primes.squeeze()1    32    53    7dtype: int64

与DataFrames一起使用时,压缩更为有效

>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])>>> df   a  b0  1  21  3  4

切片单个列将产生一个DataFrame,其中的列只有一个值

>>> df_a = df[['a']]>>> df_a   a0  11  3

因此,可以将列压缩,从而得到一个系列:

>>> df_a.squeeze('columns')0    11    3Name: a, dtype: int64

从单列切单行将产生单个标量DataFrame:

>>> df_0a = df.loc[df.index < 1, ['a']]>>> df_0a   a0  1

挤压行产生单个标量级数:

>>> df_0a.squeeze('rows')a    1Name: 0, dtype: int64

挤压所有轴将直接投影到标量中:

>>> df_0a.squeeze()1

文档:pandas.DataFrame.squeeze