pandas.DataFrame.squeeze # 数据框。挤压(轴=无)[来源]# 将一维轴对象压缩为标量。 具有单个元素的系列或数据帧被压缩为标量。具有单列或单行的 DataFrame 被压缩为一个 Series。否则该对象不变。 当您不知道对象是 Series 还是 DataFrame,但您确实知道它只有一列时,此方法最有用。在这种情况下,你可以安全地调用squeeze来确保你有一个系列。 参数: axis {0 或 'index', 1 或 'columns', None}, 默认 None要挤压的特定轴。默认情况下,所有长度为 1 的轴都会被挤压。对于系列,此参数未使用,默认为None。 返回: 数据框、系列或标量挤压轴或所有轴后的投影。 也可以看看 Series.iloc用于选择标量的基于整数位置的索引。 DataFrame.iloc用于选择系列的基于整数位置的索引。 Series.to_frame单列 DataFrame 的 DataFrame.squeeze 的逆。 例子 >>> 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