使用 Python 編寫程式,對給定 DataFrame 的索引和列進行轉置。


輸入 -

假設您有一個 DataFrame,並且索引和列轉置的結果為:

Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

方案 1

  • 設定巢狀列表推導式,迭代二維列表資料中的每個元素,並將結果儲存在 result 中。

  • 定義一個 DataFrame

result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))
  • 將結果轉換為 DataFrame,

df2 = pd.DataFrame(result)

示例

讓我們看看完整的實現,以便更好地理解 -

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

輸出

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

方案 2

  • 設定巢狀列表推導式,迭代二維列表資料中的每個元素,並將結果儲存在 result 中。

  • 對 DataFrame 應用轉置方法 df.T 或 df.transpose()。

df.transpose() # or df.T

示例

讓我們看看完整的實現,以便更好地理解 -

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
print("Transposed DataFrame is\n", df.transpose())

輸出

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

方案 3

  • 設定巢狀列表推導式,迭代二維列表資料中的每個元素,並將結果儲存在 result 中。

  • zip 方法返回一個元組迭代器。使用 * 和 zip 對二維列表應用解壓操作。定義如下,

result = zip(*data)
  • 將結果轉換為 DataFrame,

df2 = pd.DataFrame(result)

示例

讓我們看看完整的實現,以便更好地理解 -

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = zip(*data)
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

輸出

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

更新於: 2021-02-24

236 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告