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_primes
0    2
dtype: int64
>>> even_primes.squeeze()
2

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

>>> odd_primes = primes[primes % 2 == 1]
>>> odd_primes
1    3
2    5
3    7
dtype: int64
>>> odd_primes.squeeze()
1    3
2    5
3    7
dtype: int64

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

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

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

>>> df_a = df[['a']]
>>> df_a
   a
0  1
1  3

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

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

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

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

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

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

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

>>> df_0a.squeeze()
1

文档:pandas.DataFrame.squeeze

推荐文档

相关文档

大家感兴趣的内容

随机列表