Numpy là một mô-đun python để thực hiện các phép tính toán học phức tạp trên mảng. Để làm như vậy, numpy có nhiều hàm sẵn có để thao tác mảng. Trong toàn bộ bài đăng này, bạn sẽ biết cách chuyển đổi vectơ hàng thành vectơ cột trong python bằng cách sử dụng numpy
Vector trong Python là gì?
Vectơ là một đối tượng hình học chứa cả độ lớn và hướng. Vectơ được biểu diễn dưới dạng danh sách trong python. Mỗi số trong danh sách là thành phần của vectơ. Ví dụ: một vectơ có hai thành phần sẽ được biểu diễn dưới dạng [10, 20]. Độ dài của vectơ được biểu thị bằng độ lớn của vectơ
Các phương pháp Chuyển đổi vectơ hàng thành vectơ cột trong Numpy
Hãy cùng biết tất cả các phương thức cho phép bạn chuyển đổi vectơ hàng thành vectơ cột trong numpy. Dưới đây là mảng numpy giả hoặc mẫu mà tôi đang sử dụng để chuyển đổi
vectơ hàng
import numpy as np
row_vector = np.array[[10,20,30]]
print[row_vector]
đầu ra
array[[10, 20, 30]]
Phương pháp 1. Sử dụng phương thức reshape[]
Phương thức reshape[] cho phép bạn chuyển đổi vectơ hàng thành vectơ cột. Ở đây bạn chỉ cần chuyển hai đối số. Cái đầu tiên sẽ là số cột và cái thứ hai là số hàng
Trong bài đăng này, chúng ta sẽ xem cách chuyển đổi cột thành hàng, hàng thành cột, chuyển đổi một cột thành nhiều cột và cách Xoay vòng/Bỏ xoay khung dữ liệu bằng cách sử dụng các hàm gấu trúc hữu ích sau
- Tan chảy
- Xoay và Pivot_table
- ngăn xếp và Unstack
- Wide_to_long
Các chức năng trên rất hữu ích để xoa bóp DataFrame và xoay dữ liệu từ hàng sang cột hoặc ngược lại, có thể tổng hợp nhiều giá trị nguồn vào cùng một giao điểm của hàng và cột mục tiêu
Bài đăng này sẽ hữu ích cho những người muốn định dạng dữ liệu từ rộng sang dài hoặc dài sang rộng cho bất kỳ mục đích báo cáo nào để tính toán các tập hợp tùy chỉnh
Chuyển đổi cột thành hàng
Hãy tạo một khung dữ liệu về số liệu bán hàng hàng quý của các địa điểm khác nhau
import pandas as pd
import numpy as np
df = pd.DataFrame[{
'location': ['AL', 'TX', 'MO'],
'area': ['JN', 'AU', 'JC'],
'q1': [44, 25, 36],
'q2': [29, 32, 39],
'q3': [34, 43, 24],}]
df
a] pd. tan chảy[]
Chúng tôi muốn hủy xoay khung dữ liệu ở trên và chuyển đổi các cột thành hàng, Về cơ bản, chúng tôi muốn định dạng khung dữ liệu này từ rộng sang dài, Chúng tôi có thể sử dụng gấu trúc. mel[] chức năng để đạt được điều này
df.melt[id_vars=["location", "area"],
var_name="quarter",
value_name="sales"]
.sort_values[['location', 'quarter']]
.reset_index[drop=True]
Các tham số của chức năng tan chảy là gì?
Id_vars. Đó là danh sách các tên cột sẽ lặp lại cho tất cả doanh số bán hàng quý và đó là lý do tại sao chúng có các biến ID đại diện cho số liệu bán hàng i. e. vị trí và khu vực trong trường hợp này
tên biến. Tên cột mới sẽ được tạo sau khi định hình lại khung dữ liệu, Trong trường hợp này, chúng tôi muốn đặt tên cho nó là quý và nó sẽ có các giá trị là q1, q2 và q3
Tên_giá_trị. Tên của cột giá trị, chúng tôi muốn đặt tên cột này là doanh số bán hàng cho khung dữ liệu này
Ngoài
Đây là đầu ra được định hình lại của khung dữ liệu
locationareaquartersales0ALJNq1441ALJNq2292ALJNq3343MOJCq1364MOJCq2395MOJCq3246TXAUq1257TXAUq2328TXAUq343b] df. cây rơm[]
Chúng ta cũng có thể sử dụng stack để có được kết quả tương tự như trên, hàm stack ngăn xếp [các] mức quy định từ các cột đến chỉ mục
Nó trả về một DataFrame được định hình lại có chỉ mục đa cấp với một hoặc nhiều cấp độ bên trong mới nhất so với DataFrame gốc
[df.set_index[["location", "area"]]
.stack[]
.reset_index[name='sales']
.rename[columns={'level_2':'quarter'}]]
c] pd. wide_to_long[]
chúng ta cũng có thể sử dụng hàm wide_to_long[] để Bỏ xoay khung dữ liệu từ định dạng rộng sang dài. Nó ít linh hoạt hơn nhưng thân thiện với người dùng hơn tan chảy
[pd.wide_to_long[df, stubnames=['q'], i='location', j='quarter']
.reset_index[].sort_values[['location', 'quarter']]
.rename[columns={'q':'sales'}]]
Các tham số của hàm wide_to_long là gì?
tên gốc. Tên của cột mới đại diện cho một hoặc nhiều nhóm cột có định dạng trong khung dữ liệu gốc, Trong trường hợp của chúng tôi, nhóm cột là Q1,Q2,Q3
i. Mỗi hàng của các biến rộng này được giả định là được xác định duy nhất bởi i, Nó có thể là một hoặc danh sách các tên cột
j. Đó là tên của cột chỉ định những gì bạn muốn gọi là hậu tố trong tên gốc, Trong trường hợp này, Q1, Q2, Q3 đại diện cho Quý
Ngoài
Đây là khung dữ liệu kết quả, chúng tôi đã đổi tên cột q thành doanh số để làm cho khung dữ liệu trông giống với khung dữ liệu đầu ra ở trên
vị tríkhu phốkhu vựcBán hàng0AL1JN443AL2JN296AL3JN342MO1JC365MO2JC398MO3JC241TX1AU254TX2AU327TX3AU43Chuyển một cột thành nhiều cột
Chúng tôi muốn xoay các khung dữ liệu kết quả ở trên trở lại các khung dữ liệu ban đầu của chúng, chuyển đổi các hàng thành cột
Hãy tạo một khung dữ liệu tương tự như khung dữ liệu gốc ở trên
df = pd.DataFrame[{
'location': ['TX', 'TX', 'TX'],
'area': ['HOU', 'PAL', 'DAL'],
'sales': [72, 59, 63],}]
vị tríkhu vựcbán hàng0TXHOU721TXPAL592TXDAL63a] pd. trục[]
chúng ta có thể xoay khung dữ liệu này bằng cách sử dụng hàm pivot_table hoặc trục xoay sẽ tạo bảng tổng hợp kiểu bảng tính dưới dạng DataFrame và dữ liệu được chuyển đổi và lưu trữ trong các đối tượng MultiIndex [chỉ mục phân cấp] trên chỉ mục và cột của DataFrame kết quả
df.pivot_table[index='location', columns='area', values='sales']
#OR
df.pivot[index='location', columns='area', values='sales']
Các tham số của hàm pivot[] là gì?
Mục lục. cá mú hoặc cột mà bạn muốn tổng hợp
Cột. cá mú hoặc cột, được chuyển đổi từ hàng thành cột
Giá trị. Giá trị của Chỉ mục và Cột mà bạn muốn hiển thị
Ngoài
Khung dữ liệu đầu ra
khu vựcDALHOUPALvị trí TX637259b] pd. giải nén []
chúng ta có thể xoay vòng ở cấp nhãn chỉ mục bằng hàm unstack[]. Nó trả về một Khung dữ liệu có cấp độ nhãn cột mới có cấp độ bên trong nhất bao gồm các nhãn chỉ mục được xoay vòng