Hướng dẫn can i pass a dataframe to a function in python? - tôi có thể chuyển một khung dữ liệu tới một hàm trong python không?
Câu trả lời ngắn gọn là, Python luôn luôn có giá trị, nhưng mọi biến Python thực sự là một con trỏ đến một số đối tượng, vì vậy đôi khi nó trông giống như tham chiếu từng lần. Show
Trong Python, mọi đối tượng đều có thể thay đổi hoặc không thể sửa chữa. ví dụ: danh sách, dicts, mô-đun và khung dữ liệu gấu trúc là có thể thay đổi, và ints, chuỗi và bộ dữ liệu không thể sửa chữa. Các đối tượng có thể thay đổi có thể được thay đổi nội bộ (ví dụ: thêm một phần tử vào danh sách), nhưng các đối tượng không thể biến không thể. Như tôi đã nói khi bắt đầu, bạn có thể nghĩ về mọi biến Python như một con trỏ đến một đối tượng. Khi bạn chuyển một biến cho một hàm, biến (con trỏ) trong hàm luôn là bản sao của biến (con trỏ) được truyền vào. Vì vậy, nếu bạn gán một cái gì đó mới cho biến nội bộ, tất cả những gì bạn đang làm là thay đổi Biến cục bộ để trỏ đến một đối tượng khác. Điều này không thay đổi (đột biến) đối tượng gốc mà biến chỉ ra, cũng không làm cho biến bên ngoài chỉ vào đối tượng mới. Tại thời điểm này, biến bên ngoài vẫn chỉ vào đối tượng ban đầu, nhưng biến bên trong trỏ đến một đối tượng mới. Nếu bạn muốn thay đổi đối tượng gốc (chỉ có thể với các loại dữ liệu có thể thay đổi), bạn phải làm một cái gì đó làm thay đổi đối tượng mà không gán một giá trị hoàn toàn mới cho biến cục bộ. Đây là lý do tại sao 0 để lại mục bên ngoài không thay đổi, nhưng 1 làm thay đổi nó.Như @ursan đã chỉ ra, nếu 3 trỏ đến, sẽ thay đổi giá trị được thấy thông qua biến 4 toàn cầu:
Trong một số trường hợp, bạn hoàn toàn có thể tạo ra biến ban đầu và đổ đầy nó bằng dữ liệu mới, mà không thực sự thực hiện bài tập trực tiếp, ví dụ: Điều này sẽ thay đổi đối tượng ban đầu mà 5 chỉ vào, sẽ thay đổi dữ liệu được thấy khi bạn sử dụng 5 sau:
Lưu ý rằng tôi không gán một cái gì đó trực tiếp cho 7; Tôi đang gán một cái gì đó cho toàn bộ phạm vi nội bộ là 7.Nếu bạn hoàn toàn phải tạo một đối tượng hoàn toàn mới và làm cho nó hiển thị bên ngoài (đôi khi là trường hợp với gấu trúc), bạn có hai tùy chọn. Tùy chọn 'sạch' sẽ chỉ để trả về đối tượng mới, ví dụ:
Một tùy chọn khác là tiếp cận bên ngoài chức năng của bạn và thay đổi trực tiếp một biến toàn cầu. Điều này thay đổi 4 để trỏ đến một đối tượng mới và bất kỳ chức năng nào đề cập đến 4 sau đó sẽ thấy đối tượng mới đó:
Thay đổi trực tiếp các biến toàn cầu thường là một ý tưởng tồi, bởi vì bất kỳ ai đọc mã của bạn sẽ gặp khó khăn trong việc tìm ra cách 4 đã thay đổi. . GANDAS DATAFRAME cho phép bạn linh hoạt áp dụng một hàm dọc theo một trục cụ thể của DataFrame. Trong hướng dẫn này, chúng tôi sẽ xem xét cách áp dụng một chức năng cho khung dữ liệu gấu trúc thông qua một số ví dụ. Hàm DataFrame 2 của Pandas được sử dụng để áp dụng một hàm dọc theo một trục cụ thể của DataFrame. Sau đây là cú pháp:
Chúng tôi vượt qua chức năng sẽ được áp dụng và trục dọc theo đó để áp dụng nó làm đối số. Để áp dụng chức năng cho mỗi cột, hãy chuyển 3 hoặc 4 cho tham số 5 là 3 theo mặc định. Và để áp dụng chức năng cho mỗi hàng, hãy chuyển 7 hoặc 8 cho tham số 5. Các ví dụ dưới đây minh họa sự khác biệt.Ví dụHãy cùng xem xét một số trường hợp sử dụng của hàm 2 thông qua các ví dụ.1. Áp dụng chức năng cho từng cột của DataFrameHãy nói rằng bạn muốn áp dụng một hàm cho mỗi cột của một khung dữ liệu, nghĩa là dọc theo trục chỉ mục. Chẳng hạn, bạn làm việc với DataFrame có tất cả các cột số và bạn muốn tìm giá trị trung bình cho mỗi cột đó.
Output:
Trong ví dụ trên, DataFrame 3 chứa điểm số của học sinh trong ba môn học. Các hàng đại diện cho các sinh viên trong khi các cột đại diện cho các môn học. Ở đây, hàm 2 được sử dụng để có được điểm trung bình cho mỗi môn học trên tất cả các sinh viên. Lưu ý rằng, vì hàm 3 được áp dụng cho mỗi cột, chúng tôi không cần phải chuyển rõ ràng 3 cho tham số 5 vì nó là giá trị mặc định của nó.2. Áp dụng chức năng cho mỗi hàng của DataFrameBây giờ, hãy để nói rằng bạn muốn áp dụng một hàm cho mỗi hàng của một khung dữ liệu, nghĩa là, dọc theo trục cột. Chẳng hạn, bạn làm việc với DataFrame có tất cả các hàng số và bạn muốn tìm giá trị trung bình cho mỗi hàng đó.
Output:
Trong ví dụ trên, DataFrame 3 chứa điểm số của học sinh trong ba môn học. Các hàng đại diện cho các sinh viên trong khi các cột đại diện cho các môn học. Để rõ ràng hơn, chúng tôi đặt cho mỗi hàng tên của học sinh tương ứng. Ở đây, hàm 2 được sử dụng để có được điểm trung bình cho mỗi học sinh trên cả ba môn học. Lưu ý rằng, chúng tôi đã phải vượt qua 8 vì chúng tôi muốn chức năng 3 được áp dụng cho mỗi hàng.Để biết thêm về chức năng 2, hãy tham khảo tài liệu chính thức của nó.Với điều này, chúng tôi đi đến cuối hướng dẫn này. Các ví dụ và kết quả mã được trình bày trong hướng dẫn này đã được triển khai trong A & NBSP; Jupyter Notebook & NBSP; với hạt nhân Python (phiên bản 3.8.3) có Pandas phiên bản 1.0.5 Thêm về Gấu trúc DataFrames -
Chúng ta có thể chuyển DataFrame cho một chức năng không?Các hàm tùy ý có thể được áp dụng dọc theo các trục của DataFrame hoặc bảng điều khiển bằng phương thức Application (), giống như các phương thức thống kê mô tả, có một đối số trục tùy chọn.Theo mặc định, thao tác thực hiện cột khôn ngoan, lấy mỗi cột làm một mảng giống như một mảng., which, like the descriptive statistics methods, takes an optional axis argument. By default, the operation performs column wise, taking each column as an array-like.
DataFrames có được truyền bởi tham chiếu hoặc giá trị không?Nhưng đối với tất cả các đối tượng trong Python, khung dữ liệu được truyền đến hàm bằng cách tham chiếu.by reference.
Chúng ta có thể sử dụng DataFrame trong Numpy không?GANDAS DATAFRAME là một cấu trúc dữ liệu dạng bảng có kích thước hai chiều, có khả năng không đồng nhất với các trục được dán nhãn (hàng và cột).Cấu trúc dữ liệu này có thể được chuyển đổi thành NUMPY ndarray với sự trợ giúp của DataFrame.This data structure can be converted to NumPy ndarray with the help of the DataFrame.
Chúng ta có thể chuyển đổi DataFrame thành Chuỗi trong Python không?Nếu bạn muốn thay đổi kiểu dữ liệu cho tất cả các cột trong DataFrame thành loại chuỗi, bạn có thể sử dụng các phương thức DF.ApplyMap (Str) hoặc DF.Asype (Str).df. applymap(str) or df. astype(str) methods. |