用法:
DataFrame.squeeze(axis=None)
将一维轴对象挤压成标量。
具有单个元素的系列或数据帧被压缩为一个标量。具有单列或单行的 DataFrame 被压缩为一个系列。否则对象不变。
当您不知道您的对象是 Series 还是 DataFrame,但您确实知道它只有一列时,此方法最有用。在这种情况下,您可以安全地调用
squeeze
以确保您有一个系列。- axis:{0 或‘index’,1 或‘columns’,无},默认无
要挤压的特定轴。默认情况下,所有长度为 1 的轴都被挤压。
- DataFrame、系列或标量
挤压
axis
或所有轴后的投影。
参数:
返回:
例子:
>>> 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
与 DataFrame 一起使用时,挤压甚至更有效。
>>> 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
相关用法
- Python pandas.DataFrame.sparse.from_spmatrix用法及代码示例
- Python pandas.DataFrame.select_dtypes用法及代码示例
- Python pandas.DataFrame.size用法及代码示例
- Python pandas.DataFrame.subtract用法及代码示例
- Python pandas.DataFrame.stack用法及代码示例
- Python pandas.DataFrame.set_index用法及代码示例
- Python pandas.DataFrame.sort_index用法及代码示例
- Python pandas.DataFrame.shape用法及代码示例
- Python pandas.DataFrame.swaplevel用法及代码示例
- Python pandas.DataFrame.sub用法及代码示例
- Python pandas.DataFrame.sort_values用法及代码示例
- Python pandas.DataFrame.shift用法及代码示例
- Python pandas.DataFrame.set_flags用法及代码示例
- Python pandas.DataFrame.sparse.to_dense用法及代码示例
- Python pandas.DataFrame.std用法及代码示例
- Python pandas.DataFrame.sample用法及代码示例
- Python pandas.DataFrame.set_axis用法及代码示例
- Python pandas.DataFrame.sum用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.squeeze。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。