Python посчитать сколько строк

Как подсчитать количество строк в Pandas DataFrame

Есть три метода, которые вы можете использовать для быстрого подсчета количества строк в кадре данных pandas:

#count number of rows in index column of data frame len(df.index ) #find length of data frame len(df) #find number of rows in data frame df.shape [0] 

Каждый метод вернет один и тот же ответ.

Для небольших наборов данных разница в скорости между этими тремя методами незначительна.

Для чрезвычайно больших наборов данных рекомендуется использовать len(df.index) , так как было показано, что это самый быстрый метод.

В следующем примере показано, как использовать каждый из этих методов на практике.

Пример: подсчет количества строк в Pandas DataFrame

В следующем коде показано, как использовать три метода, упомянутых ранее, для подсчета количества строк в кадре данных pandas:

import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df y x1 x2 x3 0 8 5 11 2 1 12 7 8 2 2 15 7 10 3 3 14 9 6 2 4 19 12 6 5 5 23 9 5 5 6 25 9 9 7 7 29 4 12 9 8 31 5 8 11 9 30 4 8 7 10 31 7 9 7 11 31 7 9 8 #count number of rows in index column of data frame len(df.index ) 12 #find length of data frame len(df) 12 #find number of rows in data frame df.shape [0] 12 

Обратите внимание, что каждый метод возвращает один и тот же результат. DataFrame имеет 12 строк.

Источник

Как посчитать количество строк в файле

Допустим, вам нужно узнать, сколько строк в вашем файле, но файл достаточно большой, и вам бы не хотелось читать его полностью. В этой статье мы расскажем, как получить количество строк в файле при помощи Python.

Считаем количество строк в файле при помощи функции enumerate()

Чтобы узнать количество строк в текстовом файле при помощи Python, выполните следующие шаги.

  1. Откройте файл в режиме чтения.
    Чтобы открыть файл, передайте путь к файлу и режим доступа r в функцию open() .
    Например, fp = open(r’File_Path’, ‘r’) .
  2. Используйте цикл for с функцией enumerate(), чтобы получить строку и ее номер.
    Функция enumerate() добавляет счетчик в итерируемый объект и возвращает его в объекте enumerate. Передайте указатель файла, возвращенный функцией open() , в функцию enumerate() . Функция enumerate() добавит счетчик к каждой строке.
    Полученный объект enumerate можно использовать в цикле для доступа к номеру строки. Верните счетчик, когда строка закончится.
  3. Закройте файл после завершения операции чтения.
    Нам нужно убедиться, что файл будет правильно закрыт после завершения операции чтения. Используйте fp.close() для закрытия файла.

Примечание редакции. Об открытии, чтении, записи и закрытии файлов читайте в статье “Работа с файлами в Python”.

Читайте также:  Css style code element

Для примера давайте узнаем, сколько строк в файле “read_demo.txt”. На скриншоте можно видеть содержимое файла.

# Открыть файл в режиме чтения with open(r"E:\demos\files\read_demo.txt", 'r') as fp: for count, line in enumerate(fp): pass print('Total Lines', count + 1) # Вывод: # Total Lines 8

Функция enumerate() добавляет счетчик к каждой строке. Считая строки таким образом, мы не занимаем лишнюю память. Это полезно, если размер файла большой.

enumerate(file_pointer) не загружает весь файл в память, поэтому это эффективный и быстрый способ посчитать количество строк в файле.

Подсчет строк при помощи генераторного выражения

Быстрым и компактным решением для получения количества строк может быть генераторное выражение.

Если файл большой (например, если размер файла измеряется гигабайтами), то для ускорения работы следует использовать генератор. Чтобы получить еще более быстрое решение, используйте небуферизованный (сырой) интерфейс, применяя байтовые массивы и делая свою собственную буферизацию.

def _count_generator(reader): b = reader(1024 * 1024) while b: yield b b = reader(1024 * 1024) with open(r'E:\demos\files\read_demo.txt', 'rb') as fp: c_generator = _count_generator(fp.raw.read) # count each \n count = sum(buffer.count(b'\n') for buffer in c_generator) print('Total lines:', count + 1) # Вывод: # Total lines: 8

Как получить количество строк в файле при помощи функции readlines()

Если размер вашего файла невелик и вас не беспокоит производительность, то лучше всего подойдет метод readlines() .

Это самый простой способ узнать количество строк в текстовом файле в Python.

Сначала мы при помощи метода readlines() считываем все строки из файла и сохраняем их в списке. Затем с помощью функции len() мы находим длину списка, которая представляет собой не что иное, как общее количество строк в файле.

Чтобы прочитать все строки, откройте файл и примените метод readlines() к указателю на файл.

with open(r"E:\demos\files\read_demo.txt", 'r') as fp: x = len(fp.readlines()) print('Total lines:', x) # 8

Примечание. Этот способ не является экономичным, поскольку загружает весь файл в память. Это самый существенный недостаток, если вы работаете с большими файлами, размер которых исчисляется гигабайтами.

Как посчитать количество строк в файле при помощи цикла и функции sum

Вы можете использовать цикл for для чтения каждой строки, а сам цикл передать в функцию sum для получения общего количества итераций. Количество итераций будет равно количеству строк.

with open(r"E:\demos\files\read_demo.txt", 'r') as fp: num_lines = sum(1 for line in fp) print('Total lines:', num_lines) # 8

Если вы хотите исключить подсчет пустых строк, используйте приведенный ниже пример.

with open(r"E:\demos\files\read_demo.txt", 'r') as fp: num_lines = sum(1 for line in fp if line.rstrip()) print('Total lines:', num_lines) # 8

Считаем количество строк в файле при помощи оператора in и цикла

Используя оператор in и цикл, мы можем посчитать непустые строки в файле.

Для этого сперва установите счетчик на ноль. Затем используйте цикл for для чтения каждой строки файла. Если строка непустая, увеличивайте счетчик строк на 1.

# open file in read mode with open(r"E:\demos\files_demos\read_demo.txt", 'r') as fp: count = 0 for line in fp: if line != "\n": count += 1 print('Total Lines', count)

Как исключить пустые строки при подсчете

Допустим, у нас есть текстовый файл, в котором для разделения блоков используются пустые строки.

Jessa = 70 Kelly = 80 Roy = 90 Emma = 25 Nat = 80 Sam = 75

Все рассмотренные нами подходы позволяют узнать общее количество строк, включая пустые. В этом примере мы рассмотрим, как подсчитать количество строк в файле, исключая пустые строки.

count = 0 with open('read_demo.txt') as fp: for line in fp: if line.strip(): count += 1 print('number of non-blank lines', count) # Вывод: # number of non-blank lines 6

Заключение

Если у вас небольшой файл, самый лучший способ посчитать строки в нем – использовать метод readlines() или цикл.

Читайте также:  Php upload size ubuntu

Если вы работаете с большими файлами, лучше используйте генераторное выражение.

Также можно использовать цикл и функцию enumerate() , потому что это позволяет не загружать весь файл в память.

Источник

Подсчет строк, слов и символов в файле

Цикл for языка Python извлекает из файлового объекта данные построчно (одну строку на каждой итерации цикла). Таким образом, количество итераций цикла определит количество строк в файле.

Встроенная функция len() языка Python считает количество элементов в передаваемой в нее структуре. С ее помощью находится количество символов в каждой строке.

Строковый метод split() разбивает строку на части. По-умолчанию разделение происходит по местам расположения пробелов в строке. Таким образом, мы можем определить количество слов в каждой строке, посчитав с помощью len() слова в получившемся после применения split() списке.

На каждой итерации цикла мы должны добавлять полученные значения к переменным, хранящим общие количества строк, слов и символов.

file = open('text.txt') lines = 0 words = 0 symbols = 0 for line in file: lines += 1 words += len(line.split()) symbols += len(line) print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)

Пусть содержимое файла text.txt будет таким:

one two three city town big small

Тогда программа даст следующий результат:

Lines: 3 Words: 7 Symbols: 34

Cимволами считаются не только буквы, также пробелы и переходы на новую строку (символ ‘\n’ ). Если требуется не учитывать переход на новую строку как символ, его можно «отрезать» с помощью строкового метода strip() . Делается это перед тем, как строка передается в функцию len() : symbols += len(line.strip(‘\n’)) .

Если данную задачу надо решить без использования продвинутых возможностей (встроенных функций и методов) языка программирования Python, а в рамках изучения алгоритмов или на более «низком» уровне, то программа может выглядеть так:

file = open('text.txt') text = file.read() lines = 0 words = 0 symbols = 0 in_word = False for char in text: symbols += 1 if char == '\n': lines += 1 if char != ' ' and char != '\n' and in_word == False: words += 1 in_word = True elif char == ' ' or char == '\n': in_word = False print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)

Здесь на каждой итерации цикла мы имеем дело не с целой строкой, а с очередным символом. При этом увеличиваем на единицу переменную, хранящую количество символов, и, если текущий символ — это переход на новую строку, переменную для подсчета количества строк.

Для подсчета слов требуется определить в программе еще одну переменную, в которой будет хранится «сигнал», находимся ли мы внутри слова. Если это так, то очередной непробельный символ не следует считать началом нового слова и не надо увеличивать счетчик слов.

Читайте также:  Слайд шоу картинок html

Алгоритм подсчета слов в программе выше следующий. Если текущий символ не пробел И не переход на новую строку, И ранее мы находились вне слова ( in_word == False ), то есть соблюдены все три условия сразу, значит началось новое слово. Поэтому увеличиваем счетчик слов и устанавливаем in_word в значение True . Последнее действие позволит на следующей итерации цикла, при условии обработки второй и послеющих букв слова, не соблюдаться условию in_word == False и не увеличивать счетчик слов.

Мы «сбрасываем» in_word в False , только когда встречаем пробельный символ ИЛИ переход на новую строку (любое одно из двух условий).

Программа выше, также как в первом варианте, считает переход на новую строку за символ. Если требуется его исключить, можно поместить увеличение значения счетчика символов в ветку else :

. for char in text: if char == '\n': lines += 1 else: symbols += 1 .

В этом случае если очередной символ — это переход на новую строку, увеличивается счетчик строк. В остальных случаях, — счетчик символов.

Если файл большой, то считывать сразу все его содержимое в строковую переменную ( text = file.read() ) неблагоразумно. Если читать файл посимвольно ( file.read(1)) , то условием завершения работы цикла будет момент возрата методом read() пустой строки, что означает конец файла (в других языках может быть специальный символ конца файла, доступный через идентификатор EOF — end of file).

lines = 0 words = 0 symbols = 0 in_word = False with open('text.txt') as file: while True: char = file.read(1) if char == '': break symbols += 1 if char == '\n': lines += 1 if char not in (' ', '\n') and not in_word: words += 1 in_word = True elif char in (' ', '\n'): in_word = False print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)

В этом примере для открытия файла используется оператор with , который рекомендован для работы с файлами. Выражения char not in (‘ ‘, ‘\n’) and not in_word и char in (‘ ‘, ‘\n’) по смыслу аналогичны соответствующим логическим выражениям из предыдущих вариантов программы.

Источник

Как узнать количество строк в таблице python

Чтобы подсчитать количество строк в DataFrame, вы можете использовать свойство dataframe.shape или dataframe.count() .

Dataframe.shape возвращает кортеж, содержащий количество строк в качестве первого элемента и количества столбцов в качестве второго элемента. Индексируя первый элемент, мы можем получить количество строк в DataFrame:

import pandas as pd # initialize dataframe df = pd.DataFrame('a': [1, 4, 7, 2], 'b': [2, 0, 8, 7]>) # number of rows in dataframe num_rows = df.shape[0] print('Number of Rows in DataFrame :',num_rows) # => Number of Rows in DataFrame : 4 

Dataframe.count() , с значениями параметров по умолчанию возвращает количество значений вдоль каждого столбца. А в DataFrame каждый столбец содержит одинаковое количество значений, равных количеству строк. Индексируя первый элемент, мы можем получить количество строк в DataFrame:

import pandas as pd # initialize dataframe df = pd.DataFrame('a': [1, 4, 7, 2], 'b': [2, 0, 8, 7]>) # number of rows in dataframe num_rows = df.count()[0] print('Number of Rows in DataFrame :',num_rows) # => Number of Rows in DataFrame : 4 

Источник

Оцените статью