Pandas DataFrame DataFrame.transpose()函式

Minahil Noor 2023年1月30日 2020年11月7日
  1. pandas.DataFrame.transpose() 的語法
  2. 示例程式碼:DataFrame.transpose()
  3. 示例程式碼:DataFrame.transpose() 轉置具有統一資料型別的 DataFrame
  4. 示例程式碼:DataFrame.transpose() 轉置混合資料型別的 DataFrame
Pandas DataFrame DataFrame.transpose()函式

Python Pandas DataFrame.transpose() 函式將 DataFrame 的行改為列,列改為行。換句話說,它生成一個新的 DataFrame,它是原 DataFrame 的轉置。

pandas.DataFrame.transpose() 的語法

DataFrame.transpose(*args,
                    copy= False) 

引數

*args 這些是與 NumPy 相容的附加關鍵字引數
copy 它是一個布林值。它決定 DataFrame 的值在進行轉置後是否會被複制。預設情況下,它的值是 False

返回值

它返回一個轉置的 DataFrame。原有的 DataFrame 的行是返回的 DataFrame 中的列,反之亦然。

示例程式碼:DataFrame.transpose()

我們將在接下來的程式碼中實現這個功能。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

print(dataframe)

示例 DataFrame 就是:

   Attendance    Name  Obtained Marks
0          60  Olivia              90
1         100    John              75
2          80   Laura              82
3          78     Ben              64
4          95   Kevin              45

這個函式的所有引數都是可選的。如果我們在執行這個函式時不傳遞任何引數,那麼它將產生以下輸出。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

dataframe1 = dataframe.transpose()
print(dataframe1)

輸出:

                     0     1      2    3      4
Attendance          60   100     80   78     95
Name            Olivia  John  Laura  Ben  Kevin
Obtained Marks      90    75     82   64     45

示例程式碼:DataFrame.transpose() 轉置具有統一資料型別的 DataFrame

對於同質資料和混合資料型別,該函式的行為是不同的。我們將逐一分析。如果我們有一個同質型別的 DataFrame,那麼原始的和轉置的 Dataframes 的資料型別是一樣的。

同質資料型別的 DataFrame 如下所示

import pandas as pd

dataframe = pd.DataFrame({'A': {0: 6, 1: 20, 2: 80,3: 78,4: 95}, 
                          'B': {0: 60, 1: 50, 2: 7,3: 67,4: 54}})

print(dataframe)

我們的 DataFrame 是:

    A   B
0   6  60
1  20  50
2  80   7
3  78  67
4  95  54
5  98  34

要得到這個 DataFrame 的轉置。

import pandas as pd

dataframe = pd.DataFrame({'A': {0: 6, 1: 20, 2: 80,3: 78,4: 95}, 
                          'B': {0: 60, 1: 50, 2: 7,3: 67,4: 54}})

dataframe1 = dataframe.transpose()
print(dataframe1)

輸出:

    0   1   2   3   4
A   6  20  80  78  95
B  60  50   7  67  54

現在,我們來分析一下原始的 DataFrame 和返回的 DataFrame 的資料型別。

import pandas as pd

dataframe = pd.DataFrame({'A': {0: 6, 1: 20, 2: 80,3: 78,4: 95}, 
                          'B': {0: 60, 1: 50, 2: 7,3: 67,4: 54}})

dataframe1 = dataframe.transpose()

print(dataframe.dtypes)
print(dataframe1.dtypes)

輸出:

A    int64
B    int64
dtype: object
0    int64
1    int64
2    int64
3    int64
4    int64
dtype: object

請注意原始 DataFrame 和轉置後的 DataFrame 的資料型別是一樣的。

示例程式碼:DataFrame.transpose() 轉置混合資料型別的 DataFrame

如果我們有一個混合型別的 DataFrame,那麼原始的和轉置的 Dataframes 的資料型別是不同的。轉置的 DataFrame 具有物件資料型別。混合資料型別的 DataFrame 如下所示

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

print(dataframe)

我們的 DataFrame 是:

   Attendance    Name  Obtained Marks
0          60  Olivia              90
1         100    John              75
2          80   Laura              82
3          78     Ben              64
4          95   Kevin              45

要得到這個 DataFrame 的轉置。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

dataframe1 = dataframe.transpose()
print(dataframe1)

輸出:

                     0     1      2    3      4
Attendance          60   100     80   78     95
Name            Olivia  John  Laura  Ben  Kevin
Obtained Marks      90    75     82   64     45

現在,我們來分析一下原始的 DataFrame 和返回的 DataFrame 的資料型別。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

dataframe1 = dataframe.transpose()
print(dataframe.dtypes)
print(dataframe1.dtypes)

輸出:

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
0    object
1    object
2    object
3    object
4    object
dtype: object

請注意,轉置後的 DataFrame 的資料型別是 object 資料型別。

相關文章 - Pandas DataFrame