Pandaların DataFrame
boş olup olmadığı nasıl kontrol edilir? Benim durumumda DataFrame
boşsa terminalde bir mesaj yazdırmak istiyorum .
Pandaların DataFrame
boş olup olmadığı nasıl kontrol edilir? Benim durumumda DataFrame
boşsa terminalde bir mesaj yazdırmak istiyorum .
Yanıtlar:
df.empty
Boş olup olmadığını kontrol etmek için özelliği kullanabilirsiniz :
if df.empty:
print('DataFrame is empty!')
Kaynak: Pandalar Belgeleri
Kullandığım len
fonksiyonu. Bundan çok daha hızlı empty
. len(df.index)
daha da hızlı.
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
'''
Uzun rotaya gitmeyi tercih ederim. Bunlar, bir dene-hariç yan tümcesi kullanmaktan kaçınmak için izlediğim denetimlerdir -
İşte, DATA
şüpheli değişken -
DATA is not None and isinstance(DATA, pd.DataFrame) and not DATA.empty
try/except
ucuz ve if
pahalıdır. Python ne Java ne de C'dir; Burada Bağışlama İzninden Daha Kolay
Bu iş parçacığındaki boş tanımının yalnızca sıfır satırlı bir veri çerçevesi olduğu anlaşılıyor. Fakat arasında bir ayrım vardır sıfır satır ve sıfır sütunlu boş dataframe ve sıfır satır ve en az bir kolon ile boş dataframe . Her durumda, dizinin uzunluğu 0'dır ve burada gösterildiği gibi boş = Doğru:
Örnek 1: 0 satır ve 0 sütun içeren boş veri çerçevesi
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
Örnek 2: 0 satırlı ve en az 1 sütunlu boş veri çerçevesi
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
Bir ayırt etmenin bir yolu başlıklarının ve verilerin boş olduğu dataframe ya da sadece veri boşaltmak için sütun indeksi uzunluğunu test edin . İlk yüklenen veri çerçevesi sıfır sütun, ikinci veri çerçevesi boş sütun sayısını döndürür.
In [7]: len(df1.columns)
Out[7]: 0
In [8]: len(df2.columns)
Out[8]: 2
1) Bir DataFrame'in Nan ve Null olmayan değerleri varsa ve DataFrame'in boş ya da değil bu kodu deneyin. 2) Bu durum ne zaman ortaya çıkabilir? Bu durum, birden fazla DataFrame'i çizmek için tek bir işlev kullanıldığında ortaya çıkar Böyle bir durumda, işlev verileri bile çizmeye çalışır Bir DataFrame boş olduğunda ve böylece boş bir şekil çizin !. 'DataFrame'de veri yok' mesajı görüntülenirse mantıklı olacaktır. 3) neden? Bir DataFrame boşsa (yani hiç veri içermiyorsa. boş olmadığı düşünülürse), çizmemek ancak bir mesaj göndermek istenir: Df1 ve df2 olmak üzere iki DataFramesimiz olduğunu varsayalım. Myfunc işlevi herhangi bir DataFrame (bu durumda df1 ve df2) alır ve bir ileti yazdırır bir DataFrame boşsa (çizim yapmak yerine):
df1 df2
col1 col2 col1 col2
Nan 2 Nan Nan
2 Nan Nan Nan
ve fonksiyon:
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')