pandas.DataFrame.transpose#

DataFrame.transpose(*args, copy=<no_default>)[源代码]#

转置索引和列。

通过将行写成列,反之亦然,来反射 DataFrame 绕其主对角线。属性 T 是方法 transpose() 的访问器。

参数:
*args元组, 可选

为了与 NumPy 兼容而接受。

copybool,默认值 False

此关键字已被忽略;更改其值将不会影响方法。

请注意,对于混合 dtype 的 DataFrames,或包含任何扩展类型的 DataFrames,始终需要复制。

已弃用,版本 3.0.0: 此关键字已被忽略,并将在 pandas 4.0 中删除。自 pandas 3.0 起,此方法始终返回一个新对象,并使用延迟复制机制,该机制会推迟复制直到必要时(写时复制)。有关更多详细信息,请参阅关于写时复制的用户指南

返回:
DataFrame

转置后的 DataFrame。

另请参阅

numpy.transpose

排列给定数组的维度。

注意

转置具有混合 dtypes 的 DataFrame 将导致一个具有 object dtype 的同质 DataFrame。在这种情况下,始终会复制数据。

示例

同质 dtype 的方形 DataFrame

>>> d1 = {"col1": [1, 2], "col2": [3, 4]}
>>> df1 = pd.DataFrame(data=d1)
>>> df1
   col1  col2
0     1     3
1     2     4
>>> df1_transposed = df1.T  # or df1.transpose()
>>> df1_transposed
      0  1
col1  1  2
col2  3  4

当原始 DataFrame 的 dtype 是同质的时,我们得到一个具有相同 dtype 的转置 DataFrame

>>> df1.dtypes
col1    int64
col2    int64
dtype: object
>>> df1_transposed.dtypes
0    int64
1    int64
dtype: object

非方形 DataFrame 具有混合 dtypes

>>> d2 = {
...     "name": ["Alice", "Bob"],
...     "score": [9.5, 8],
...     "employed": [False, True],
...     "kids": [0, 0],
... }
>>> df2 = pd.DataFrame(data=d2)
>>> df2
    name  score  employed  kids
0  Alice    9.5     False     0
1    Bob    8.0      True     0
>>> df2_transposed = df2.T  # or df2.transpose()
>>> df2_transposed
              0     1
name      Alice   Bob
score       9.5   8.0
employed  False  True
kids          0     0

当 DataFrame 具有混合 dtypes 时,我们得到一个具有 object dtype 的转置 DataFrame

>>> df2.dtypes
name            str
score       float64
employed       bool
kids          int64
dtype: object
>>> df2_transposed.dtypes
0    object
1    object
dtype: object