tml)
  * [ Resampling ](../resampling.html)
  * [ Style ](../style.html)
  * [ Plotting ](../plotting.html)
  * [ Options and settings ](../options.html)
  * [ Extensions ](../extensions.html)
  * [ Testing ](../testing.html)
  * [ Missing values ](../missing_value.html)

  * [ __ ](../../index.html)
  * [ API reference ](../index.html)
  * [ DataFrame ](../frame.html)
  * pandas.DataF... 

#  pandas.DataFrame.transpose  #

DataFrame.  transpose  (  _ *  args  _ , _ copy  =  False  _ )  [ [source]
](https://github.com/pandas-
dev/pandas/blob/v2.2.2/pandas/core/frame.py#L3767-L3949) #

    

Transpose index and columns.

Reflect the DataFrame over its main diagonal by writing rows as columns and
vice-versa. The property [ ` T  ` ](pandas.DataFrame.T.html#pandas.DataFrame.T
"pandas.DataFrame.T") is an accessor to the method  ` transpose()  ` .

Parameters  :

    

***args** tuple, optional

    

Accepted for compatibility with NumPy.

**copy** bool, default False

    

Whether to copy the data after transposing, even for DataFrames with a single
dtype.

Note that a copy is always required for mixed dtype DataFrames, or for
DataFrames with any extension types.

Note

The  copy  keyword will change behavior in pandas 3.0. [ Copy-on-Write
](https://pandas.pydata.org/docs/dev/user_guide/copy_on_write.html) will be
enabled by default, which means that all methods with a  copy  keyword will
use a lazy copy mechanism to defer the copy and ignore the  copy  keyword. The
copy  keyword will be removed in a future version of pandas.

You can already get the future behavior and improvements through enabling copy
on write ` pd.options.mode.copy_on_write  =  True  `

Returns  :

    

DataFrame

    

The transposed DataFrame.

See also

[ ` numpy.transpose  `
](https://numpy.org/doc/stable/reference/generated/numpy.transpose.html#numpy.transpose
"\(in NumPy v1.26\)")

    

Permute the dimensions of a given array.

Notes

Transposing a DataFrame with mixed dtypes will result in a homogeneous
DataFrame with the  object  dtype. In such a case, a copy of the data is
always made.

Examples

**Square DataFrame with homogeneous dtype**

    
    
    >>> 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
    

When the dtype is homogeneous in the original DataFrame, we get a transposed
DataFrame with the same dtype:

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

**Non-square DataFrame with mixed 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
    

When the DataFrame has mixed dtypes, we get a transposed DataFrame with the
object  dtype:

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

[ __ previous  pandas.DataFrame.T  ](pandas.DataFrame.T.html "previous page")
[ next  pandas.DataFrame.assign  __ ](pandas.DataFrame.assign.html "next
page")

__ On this page

  * ` DataFrame.transpose()  `

[ __ Show Source
](../../_sources/reference/api/pandas.DataFrame.transpose.rst.txt)

© 2024, pandas via [ NumFOCUS, Inc. ](https://numfocus.org) Hosted by [