Computer >> Máy Tính >  >> Lập trình >> Python

Viết chương trình bằng Python để chuyển chỉ mục và cột trong DataFrame nhất định

Đầu vào -

Giả sử bạn có DataFrame và kết quả để chuyển đổi chỉ mục và cột là,

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

Giải pháp 1

  • Xác định DataFrame

  • Đặt khả năng hiểu danh sách lồng nhau để lặp lại từng phần tử trong dữ liệu danh sách hai chiều và lưu trữ nó trong kết quả.

result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))
  • Chuyển đổi kết quả thành DataFrame,

df2 = pd.DataFrame(result)

Ví dụ

Hãy cho chúng tôi xem quá trình triển khai hoàn chỉnh để hiểu rõ hơn -

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)

Đầu ra

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

Giải pháp 2

  • Xác định DataFrame

  • Áp dụng phương thức chuyển vị df.T hoặc df.transpose () cho DataFrame.

df.transpose() # or df.T

Ví dụ

Hãy cho chúng tôi xem quá trình triển khai hoàn chỉnh để hiểu rõ hơn -

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

Đầu ra

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

Giải pháp 3

  • Xác định DataFrame

  • Phương thức zip trả về một trình vòng lặp của các bộ giá trị. Áp dụng để giải nén danh sách hai chiều bằng cách sử dụng * và nén nó. Nó được định nghĩa bên dưới,

result = zip(*data)
  • Chuyển đổi kết quả thành DataFrame,

df2 = pd.DataFrame(result)

Ví dụ

Hãy cho chúng tôi xem quá trình triển khai hoàn chỉnh để hiểu rõ hơn -

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)

Đầu ra

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