Як отримати кількість стовпців у кадрі даних Pandas?


184

Як ви програматично отримуєте кількість стовпців у фреймі даних панди? Я сподівався на щось таке:

df.num_columns

Відповіді:


305

Так:

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

len(df.columns)
3

35
плюс df.shapeдає кортеж з (n_row, n_columns)
mkln

3
@mkln, якщо ви опублікуєте df.shape [1] як відповідь, я поставив +1. Це кращий спосіб роботи з numpy і заслуговує на окрему відповідь.
Філ Купер

зроблено. @PhilCooper, можливо, ви могли б пояснити, чому df.shapeкраще? я здогадуюсь, що вона не викликає функцію, а просто читає атрибут з пам'яті?
mkln

113

Альтернатива:

df.shape[1]

( df.shape[0]це кількість рядків)


2
+1, оскільки мені подобається заохочувати адреси об'єктів numpy та pandas із синтаксисом типу martix. (df.shape vs len (df.колонки)). Правду кажучи, якщо ви подивитеся на дескриптор панд для форми, він називає len (df.columns), але numpy масиви та матриці мають їх як атрибут. Найефективніші векторизовані операції можна робити з регулярними синтазіями python на відміну від векторизованих операцій і майже завжди помиляються (операції numba / jit виключаються з цього критизму)
Phil Cooper

26

Якщо змінна, що містить кадр даних, називається df, то:

len(df.columns)

дає кількість стовпців.

А для тих, хто хоче кількість рядків:

len(df.index)

Для кортежу, що містить кількість рядків і стовпців:

df.shape

3
Ви б не len(df)дали рядків?
Падраїк Каннінгем

4
У пандах @PadraicCunningham є стільки ярликів, які легко забути, тому я вважаю за краще ігнорувати їх і використовувати замість головної логіки для вирішення речей. Ви можете іноді пожертвувати швидкістю обробки, але я ціную час кодування та читаність коду більше ніж кілька секунд часу обробки. У цьому конкретному випадку: якщо ви дізнаєтесь, що кількість рядків можна обчислити за допомогою len (df.index), наступного разу вам знадобиться кількість стовпців, це природно робити len (df. Column).
multigoodverse

0

Це працювало для мене len (список (df)).


З перегляду: Привіт, ця публікація, здається, не дає якісної відповіді на питання. Будь ласка, відредагуйте свою відповідь та вдосконаліть її, або просто опублікуйте її як коментар.
sɐunıɔ ןɐ qɐp

Не робіть цього. Він створює новий список, витрачаючи пам’ять і швидкість.
jmmcd

0

Функція df.info () дасть результат приблизно як нижче. Якщо ви використовуєте метод read_csv Pandas без параметра sep або sep з ",".

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

Існує декілька варіантів отримання номера стовпця та інформації стовпця, таких як:
давайте перевіримо їх.

local_df = pd.DataFrame (np.random.randint (1,12, розмір = (2,6)), стовпці = ['a', 'b', 'c', 'd', 'e', ​​'f ']) 1. local_df.shape [1] -> Атрибут форми повернути кортеж як (рядок і стовпці) (0,1).

  1. local_df.info () -> info Метод повертає детальну інформацію про фрейм даних та його стовпці, такі як кількість стовпців, тип даних стовпців, Не нульове значення, використання пам'яті за кадром даних

  2. len (local_df.columns) -> атрибут стовпців поверне індексний об'єкт кадру даних стовпців, а функція len поверне загальні доступні стовпці.

  3. local_df.head (0) -> метод методу head з параметром 0 поверне перший рядок df, який насправді є лише заголовком.

Припустима кількість стовпців не більше 10. Для циклу веселощів: li_count = 0 для x у local_df: li_count = li_count + 1 print (li_count)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.