Як перевірити, чи порожній DataFrame Pandas (3 способи)
Перевірка порожнечі DataFrame за допомогою Pandas у Python може бути корисною у різних випадках використання, наприклад, перед обробкою або аналізом DataFrame. Ця перевірка на порожнечу DataFrame дозволить уникнути непередбачених помилок. Крім того, іноді, коли ми перебираємо декілька DataFrame, нам потрібно обробляти порожній DataFrame та непустий DataFrame окремо, тому для цього нам спочатку потрібно перевірити, чи порожній DataFrame чи ні, щоб ми могли їх відрізнити.
У цій статті ми розглянемо три способи перевірити, чи порожній кадр даних Pandas, щоб ви могли використовувати той, який вам найбільше підходить. Почнемо.
Перевірка того, чи є кадр даних Pandas порожнім у Python.
Pandas DataFrame - це двовимірна таблична структура даних, що складається з рядків і стовпців. У цій статті ми хочемо визначити, чи DataFrame є порожнім, тому спочатку давайте створимо порожній DataFrame .
Приклад:
import pandas as pd df = pd.DataFrame() print(df)
Тут ми використовували функцію pd.DataFrame() для створення порожнього DataFrame. Ми не передали жодних даних у функцію pd.DataFrame() і таким чином отримуємо порожній DataFrame. Ми бачимо, що під час друку самого DataFrame ми отримуємо, що df є порожнім DataFrame і немає ні стовпців, ні рядків.
Вихід:
Методи перевірки того, чи порожній DataFrame в Python:
- Використання властивості df.empty
- Використання властивості df.shape
- Використання функції len()
1. Використання якості df.empty
Незалежно від того, чи порожній DataFrame чи ні, у нього є простий спосіб використовувати порожню властивість. Він поверне True, якщо DataFrame порожній, інакше він поверне False, якщо DataFrame не порожній.
Приклад:
import pandas as pd df = pd.DataFrame() print(df.empty)
Тут df.empty дає нам логічне значення, яке, по суті, повідомляє нам, чи порожній DataFrame чи ні.Ми використовували цю властивість у DataFrame df , який ми створили вище, і отримали True, що є правильною відповіддю, оскільки DataFrame df був пустим DataFrame .
Вихід:
2. Використання властивості df.shape
Ми можемо перевірити, чи порожній DataFrame чи ні, за допомогою властивості df.shape , яка поверне кортеж рядків і стовпців DataFrame . Отже, df.shape[0] дає нам кількість рядків, і якщо кількість рядків дорівнює 0, DataFrame порожній, інакше DataFrame не порожній.
Приклад:
import pandas as pd df = pd.DataFrame() print(df.shape[0]==0)
Використовуючи властивість df.shape DataFrame , ми отримали кортеж рядків і стовпців, а потім порівняли значення по 0-му індексу в кортежі, яке є кількістю рядків у DataFrame , з 0. Після роздруківки df.shape[0 ]==0 , ми отримали True тому, що вказаний вище DataFrame порожній.
Вихід:
3. Використання функції len()
Ми можемо перевірити, чи порожній DataFrame чи ні, використовуючи вбудовану функцію Python len() , яка визначає довжину об'єкта Python. Якщо довжина DataFrame дорівнює 0, можемо сказати, що DataFrame порожній, інакше він може бути порожнім DataFrame .
Приклад:
import pandas as pd df = pd.DataFrame() print(len(df)==0)
Тут ми передали df DataFrame у функцію len() , вона дала нам кількість рядків у DataFrame , тому після того, коли ми порівняли кількість рядків з нулем, ми знову отримали True, тому що DataFrame є порожнім DataFrame .
Вихід:
Що робити, якщо DataFrame має значення NaN?
Допустимо, у нас є DataFrame , в якому є кілька рядків або один рядок, і всі значення DataFrame мають значення NaN . Чи вважатиметься цей DataFrame порожнім DataFrame чи ні? Давайте подивимося на прикладі.
Приклад:
import numpy як np df_nan = pd.DataFrame() print(df_nan)
Тут ми створили DataFrame df_nan , який має один рядок і один стовпець, і значенням цього конкретного рядка є NaN .
Вихід:
Тепер слід вважати DataFrame df_nan порожнім DataFrame чи ні? По суті, ґрунтуючись на визначенні, яке ми встановили для порожнього DataFrame, цей DataFrame df_nan не повинен бути порожнім DataFrame, оскільки в ньому є рядок.
Давайте застосуємо три методи, які ми бачили вище, щоб перевірити, чи порожній DataFrame df_nan чи ні.
print(df_nan.empty) print(df_nan.shape[0]==0) print(len(df_nan)==0)
Тут ми спочатку застосували властивість df.empty , потім порівняли кількість рядків із 0, використовуючи властивість df.shape , а потім використовували функцію len() для обчислення довжини DataFrame і порівняли її з 0.
Після запуску ми отримали False всіма трьома способами, що є правильною відповіддю: цей df_nan DataFrame не вважатиметься пустим DataFrame .
Короткий зміст
Перевірка того, чи порожній DataFrame за допомогою pandas є цінною практикою для обробки різних сценаріїв при роботі з даними. Це може допомогти гарантувати, що наш код поводитиметься належним чином, особливо при роботі з реальними наборами даних, які можуть містити відсутні або порожні дані. У цьому уроці ми використовували методи void, shape та len() з деякими прикладами. Ми сподіваємося, що після прочитання ви зможете легко перевірити, чи порожній DataFrame Pandas чи ні в Python.
Джерело:
Python pandas check if dataframe is not empty
I have an if statement where it checks if the data frame is not empty. way I do it is the following:
if dataframe.empty: pass else: #do something
if dataframe is not empty: #do something
My question is - is there a method .not_empty() to achieve this? I also wanted to ask if the second version is better in terms of performance? Іншівикористання може бути неможливим для мене, щоб це було, і це i.e. the перша версія?
@Zero, може будь-який час до preferability of len(df.index) vs df.empty ? pylint prefers the latter, but do performance considerations outweigh the stylistic benefit (if it exists)?
5 Answers 5
if not dataframe.empty: # insert code here
Реакція цієї роботи є because dataframe.empty returns True if dataframe is empty. Для того, щоб скористатися цим, ми можемо використовувати negation operator не , Які flips True to False and vice-versa.
.empty returns a boolean value
>>> df_empty.empty True
So if not empty can be written as
if not df.empty: #Your code
Check pandas.DataFrame.empty , might help someone.
Ви можете використовувати atribut dataframe.empty to check whether it's empty or not:
if not dataframe.empty: #do something
if len(dataframe) != 0: #do something
if len(dataframe.index) != 0: #do something
Як тільки clearly explained by інші commentators, ви можете negate a boolean expression in Python by simply prepending the not operator, hence:
if not df.empty: # do something
І тільки хотіли б визначати, що "між" в цьому контексті, тому що він був битий схильний для мене на першому.
Підписання до панда Documentation, DataFrame.empty method returns True if any з axes в DataFrame є з length 0.
Як наслідок, "empty" не є mean zero rows and zero columns, як someone might expect. A dataframe with zero rows (axis 1 is empty) але non-zero columns (axis 2 is not empty) is still considered empty:
> df = pd.DataFrame(columns=["A", "B", "C"]) > df.empty True
Інші цікаві точки висвітлені в документації є DataFrame, що тільки contains NaNs is not розглядається empty.
> df = pd.DataFrame(columns=["A", "B", "C"], index=['a', 'b', 'c']) > df A B C a NaN NaN NaN b NaN NaN NaN c NaN NaN NaN > df.empty False