कैसे जांच करें कि क्या एक पांडा 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
महंगा है। पायथन न तो जावा है और न ही सी; यहाँ अनुमति की तुलना में क्षमा माँगना आसान है
ऐसा प्रतीत होता है कि इस धागे में खाली की परिभाषा केवल शून्य पंक्तियों के साथ एक डेटाफ्रेम है। लेकिन शून्य पंक्तियों और शून्य स्तंभों के साथ एक खाली डेटाफ़्रेम और शून्य पंक्तियों के साथ एक खाली डेटाफ़्रेम और कम से कम एक स्तंभ के बीच एक अंतर है । प्रत्येक मामले में सूचकांक की लंबाई 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
एक तरह से एक के बीच अंतर करने dataframe है कि हेडर और डेटा की खाली या सिर्फ आंकड़ों के खाली करने के लिए है स्तंभ अनुक्रमणिका की लंबाई का परीक्षण । पहला लोड किया गया डेटाफ्रेम शून्य कॉलम देता है, दूसरा डेटाफ्रेम खाली कॉलमों की संख्या लौटाता है।
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 खाली है (अर्थात सभी में कोई डेटा नहीं है। तो आप NanF मान के साथ DataFrame करें को गैर रिक्त माना जाता है) तो यह साजिश रचने के लिए वांछनीय नहीं है लेकिन एक संदेश बाहर रखा गया है: मान लीजिए कि हमारे पास दो DataFrames df1 और df2 हैं। फ़ंक्शन myfunc किसी भी DataFrame (df1 और df2 को इस मामले में) लेता है और एक संदेश प्रिंट करता है यदि कोई डेटाफ़्रेम खाली है (प्लॉटिंग के बजाय):
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')