Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python Transpose DataFrame สลับแถวและคอลัมน์

สมมติว่าคุณมี DataFrame และต้องการ transpose (สลับแถวและคอลัมน์)

วิธีที่ 1: ใช้ List Comprehension (Manual)

  1. สร้าง DataFrame
  2. ใช้ nested list comprehension สลับ index
  3. สร้าง DataFrame ใหม่จากผลลัพธ์

ตัวอย่าง

import pandas as pd

data = [[1, 2, 3], [4, 5, 6]]
df = pd.DataFrame(data)

print("DataFrame ต้นฉบับ:\n", df)

# Manual transpose
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df2 = pd.DataFrame(result)

print("\nTransposed (manual):\n", df2)

วิธีที่ 2: ใช้ transpose() หรือ .T (แนะนำ)


print("\nTransposed (df.T):\n", df.T)
# หรือ
print("\nTransposed (df.transpose()):\n", df.transpose())

วิธีที่ 3: ใช้ zip()


result = zip(*data)
df2 = pd.DataFrame(result)
print("\nTransposed (zip):\n", df2)

ผลลัพธ์ (ทุกวิธี)

DataFrame ต้นฉบับ:
   0  1  2
0  1  2  3
1  4  5  6

Transposed:
   0  1
0  1  4
1  2  5
2  3  6

คำอธิบาย:

  • df.T หรือ df.transpose(): วิธีมาตรฐาน เร็วที่สุด รองรับทุก dtype
  • zip(*data): Python built-in unpacking rows แล้ว zip คอลัมน์กัน
  • List comprehension: เข้าใจ logic ได้ แต่ช้าและไม่จัดการ dtype อัตโนมัติ
  • Transpose สลับ shape จาก (rows, cols) เป็น (cols, rows)