Як перевірити, чи панда DataFrame
порожня? У моєму випадку я хочу надрукувати якесь повідомлення в терміналі, якщо поле DataFrame
порожнє.
Як перевірити, чи панда DataFrame
порожня? У моєму випадку я хочу надрукувати якесь повідомлення в терміналі, якщо поле DataFrame
порожнє.
Відповіді:
Ви можете використовувати атрибут, df.empty
щоб перевірити, чи порожній він чи ні:
if df.empty:
print('DataFrame is empty!')
Джерело: Документація панд
Я використовую len
функцію. Це набагато швидше, ніж empty
. len(df.index)
ще швидше.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10000, 4), columns=list('ABCD'))
def empty(df):
return df.empty
def lenz(df):
return len(df) == 0
def lenzi(df):
return len(df.index) == 0
'''
%timeit empty(df)
%timeit lenz(df)
%timeit lenzi(df)
10000 loops, best of 3: 13.9 µs per loop
100000 loops, best of 3: 2.34 µs per loop
1000000 loops, best of 3: 695 ns per loop
len on index seems to be faster
'''
Я вважаю за краще йти довгим маршрутом. Це перевірки, яких я дотримуюся, щоб уникнути використання випробувального застереження -
Ось DATA
переменная підозрюваної -
DATA is not None and isinstance(DATA, pd.DataFrame) and not DATA.empty
try/except
це дешево і if
дорого. Python не є ні Java, ні C; тут простіше просити прощення, ніж дозволу
Здається, що прийняте визначення порожнього в цьому потоці - це фрейм даних з нульовими рядками. Але є різниця між порожнім фреймом даних із нульовими рядками та нульовими стовпцями та порожнім кадром даних із нульовими рядками та принаймні одним стовпцем . У кожному випадку довжина індексу дорівнює 0 та порожня = Істинно, як показано тут:
Приклад 1: порожній кадр даних з 0 рядками та 0 стовпцями
In [1]: import pandas as pd
df1 = pd.DataFrame()
df1
Out[1]: Empty DataFrame
Columns: []
Index: []
In [2]: len(df1.index)
Out[2]: 0
In [3]: df1.empty
Out[3]: True
Приклад 2: порожній кадр даних з 0 рядками та щонайменше 1 стовпцем
In [4]: df2 = pd.DataFrame({'AA' : [], 'BB' : []})
df2
Out[4]: Empty DataFrame
Columns: [AA, BB]
Index: []
In [5]: len(df2.index)
Out[5]: 0
In [6]: df2.empty
Out[6]: True
Один із способів розрізнити фрейм даних, який не має заголовків і даних або просто порожній даних, - це перевірити довжину індексу стовпців . Перший завантажений кадр даних повертає нульові стовпці, другий кадр даних повертає кількість порожніх стовпців.
In [7]: len(df1.columns)
Out[7]: 0
In [8]: len(df2.columns)
Out[8]: 2
1) Якщо DataFrame має значення Nan та Non Null, і ви хочете дізнатися, чи є DataFrame порожнє чи ні, тоді спробуйте цей код. 2) коли така ситуація може статися? Ця ситуація трапляється, коли одна функція використовується для побудови декількох DataFrame які передаються як параметр. У такій ситуації функція намагається побудувати дані навіть коли DataFrame порожній і, таким чином, побудувати порожню фігуру !. Це буде сенс, якщо просто відобразити повідомлення "DataFrame не має даних". 3) чому? якщо DataFrame порожній (тобто не містить даних взагалі. Зверніть увагу на DataFrame зі значеннями Nan вважається непорожнім), то бажано не робити сюжет, а викласти повідомлення: Припустимо, у нас є два DataFrames df1 і df2. Функція myfunc приймає будь-яку DataFrame (в даному випадку df1 і df2) і друкує повідомлення якщо DataFrame порожній (замість графіки):
df1 df2
col1 col2 col1 col2
Nan 2 Nan Nan
2 Nan Nan Nan
і функція:
def myfunc(df):
if (df.count().sum())>0: ##count the total number of non Nan values.Equal to 0 if DataFrame is empty
print('not empty')
df.plot(kind='barh')
else:
display a message instead of plotting if it is empty
print('empty')