Làm cách nào để truy xuất số lượng cột trong khung dữ liệu Pandas?


184

Làm thế nào để bạn lập trình lấy số lượng cột trong khung dữ liệu gấu trúc? Tôi đã hy vọng cho một cái gì đó như:

df.num_columns

Câu trả lời:


304

Thích như vậy:

import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})

len(df.columns)
3

35
cộng với df.shapemột tuple với (n_rows, n_columns)
mkln

3
@mkln nếu bạn đăng df.shape [1] dưới dạng câu trả lời, tôi sẽ +1. Đây là cách tốt hơn để làm việc với numpy và xứng đáng là một câu trả lời riêng biệt.
Phil Cooper

làm xong. @PhilCooper có lẽ bạn có thể giải thích tại sao df.shapetốt hơn? Tôi đoán là nó không gọi hàm mà chỉ đọc thuộc tính từ bộ nhớ?
mkln

112

Thay thế:

df.shape[1]

( df.shape[0]là số lượng hàng)


2
+1 vì tôi muốn khuyến khích giải quyết các đối tượng numpy và gấu trúc với cú pháp kiểu martix. (df.shape vs len (df.columns)). Sự thật mà nói, nếu bạn nhìn vào mô tả gấu trúc để tìm hình dạng, nó gọi len (df.columns) nhưng các mảng và ma trận numpy có chúng như một thuộc tính. Các hoạt động vector hóa hiệu quả nhất có thể được thực hiện với các cú pháp python thông thường trái ngược với các hoạt động vector hóa và hầu như luôn luôn sai (các hoạt động numba / jit ngoại trừ từ lời chỉ trích đó)
Phil Cooper

26

Nếu biến giữ khung dữ liệu được gọi là df, thì:

len(df.columns)

đưa ra số lượng cột.

Và đối với những người muốn số lượng hàng:

len(df.index)

Đối với một tuple chứa số lượng của cả hai hàng và cột:

df.shape

3
Sẽ không len(df)cung cấp cho bạn các hàng?
Padraic Cickyham

4
Gấu trúc @PadraicCastyham có rất nhiều phím tắt dễ quên nên tôi thích bỏ qua chúng và sử dụng logic chính thay thế để giải quyết mọi việc. Đôi khi bạn có thể hy sinh tốc độ xử lý, nhưng tôi đánh giá thời gian mã hóa và khả năng đọc mã của tôi hơn một vài giây thời gian xử lý. Trong trường hợp cụ thể này: nếu bạn biết rằng số lượng hàng có thể được tính bằng len (df.index), lần sau bạn cần số cột sẽ xuất hiện tự nhiên để làm len (df.columns).
đa cấp

0

Điều này làm việc cho tôi len (danh sách (df)).


Từ đánh giá: Xin chào, bài đăng này dường như không cung cấp câu trả lời chất lượng cho câu hỏi. Vui lòng chỉnh sửa câu trả lời của bạn và cải thiện nó, hoặc chỉ đăng nó dưới dạng một bình luận.
sɐunıɔ qɐp

Đừng làm vậy. Nó tạo ra một danh sách mới, lãng phí bộ nhớ và tốc độ.
jmmcd

0

Hàm df.info () sẽ cho bạn kết quả như sau. Nếu bạn đang sử dụng phương thức read_csv của Pandas mà không có tham số sep hoặc sep với ",".

raw_data = pd.read_csv("a1:\aa2/aaa3/data.csv")
raw_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5144 entries, 0 to 5143
Columns: 145 entries, R_fighter to R_age

0

Có nhiều tùy chọn để lấy số cột và thông tin cột như:
hãy kiểm tra chúng.

local_df = pd.DataFrame (np.random.randint (1,12, size = (2,6)), cột = ['a', 'b', 'c', 'd', 'e', ​​'f ']) 1. local_df.shape [1] -> Thuộc tính hình dạng trả về tuple dưới dạng (hàng & cột) (0,1).

  1. local_df.info () -> thông tin Phương thức sẽ trả về thông tin chi tiết về khung dữ liệu và đó là các cột như số cột, kiểu dữ liệu của cột, Không tính giá trị null, sử dụng bộ nhớ theo Khung dữ liệu

  2. len (local_df.columns) -> thuộc tính cột sẽ trả về đối tượng chỉ mục của cột khung dữ liệu & hàm len sẽ trả về tổng số cột có sẵn.

  3. local_df.head (0) -> phương thức head với tham số 0 sẽ trả về hàng thứ 1 của df mà thực tế không có gì ngoài tiêu đề.

Giả sử số cột không quá 10. Đối với vòng lặp vui: li_count = 0 cho x in local_df: li_count = li_count + 1 print (li_count)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.