কোনও পান্ডাস ডেটা ফ্রেম খালি কিনা তা কীভাবে পরীক্ষা করবেন?


295

একটি পান্ডা DataFrameখালি আছে কিনা তা কীভাবে পরীক্ষা করবেন ? আমার ক্ষেত্রে আমি টার্মিনালে কিছু বার্তা মুদ্রণ করতে চাই যদি DataFrameতা খালি থাকে।


2
লেন () কাজ করে না? খালি ডেটাফ্রেমের জন্য এটি 0 ফিরে আসবে।
VIKASH JAISWAL

উত্তর:


461

বৈশিষ্ট্যটি df.emptyখালি রয়েছে কিনা তা পরীক্ষা করতে আপনি এটি ব্যবহার করতে পারেন :

if df.empty:
    print('DataFrame is empty!')

সূত্র: পান্ডাস ডকুমেন্টেশন


3
এটি লজ্জার মতো মনে হচ্ছে, যেহেতু আপনার জানা দরকার যে ডিএফ একটি পিডি D ডেটা ফ্রেম। আমি পিডি.ডাটাফ্রেমে বুল () প্রয়োগ না করার অনুপ্রেরণা জানতে চাই।
কোয়ান্ট

17
- @Quant ডকুমেন্টেশন কেন আলোচনা হয়েছে bool, : একটি dataframe এখানে একটি ত্রুটি উত্থাপন লিংক । উক্তি: "এটি কি সত্য হওয়া উচিত কারণ এটি শূন্য দৈর্ঘ্যের নয়? মিথ্যা মান রয়েছে বলে মিথ্যা কারণ এটি অস্পষ্ট, সুতরাং পরিবর্তে, পান্ডাস একটি মান উত্থাপন করে"
বিজ

56

আমি lenফাংশনটি ব্যবহার করি । এটা তুলনায় অনেক দ্রুত emptylen(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
'''

7
ল্যান (df.index) == 0 বা লেন (df.colالms) == 0 এর কারণে একটি ডেটাফ্রেম খালি থাকতে পারে।
মার্ক হরভাথ

9

আমি দীর্ঘ পথে যেতে পছন্দ করি। এই চেষ্টাগুলি বাদ দিয়ে চেষ্টাটি বাদ দেওয়ার জন্য আমি চেকগুলি অনুসরণ করি -

  1. ভেরিয়েবল কিছুই নয় কিনা তা পরীক্ষা করুন
  2. তারপরে এটি কোনও ডেটাফ্রেম এবং কিনা তা পরীক্ষা করে দেখুন
  3. এটি খালি না তা নিশ্চিত করুন

এখানে, DATAসন্দেহজনক পরিবর্তনশীল -

DATA is not None and isinstance(DATA, pd.DataFrame) and not DATA.empty

2
এটি অপ্রয়োজনীয় এবং খারাপ অনুশীলন যদি আশা করা হয় যে ভেরিয়েবলটি ডেটাফ্রেম হবে (যা ওপি দ্বারা বোঝায়) হয় খালি হয় বা সারি থাকে। যদি এটি কোনও ডিএফ না হয় (বা এটি কোনও না হয়), কোনও কিছু ভুল হয়ে যাওয়ার কারণে একটি ব্যতিক্রম ছুঁড়ে ফেলা উচিত।
fgblomqvist

পাইথনে, try/exceptসস্তা এবং ifব্যয়বহুল। পাইথন জাভা বা সি নয়; এখানে অনুমতি চেয়ে ক্ষমা চাওয়া আরও সহজ
নিক মেরিনাখিস

4

এটি প্রদর্শিত হয় যে এই থ্রেডে খালিটির গৃহীত সংজ্ঞাটি কেবল শূন্য সারি সহ একটি ডেটাফ্রেম। তবে শূন্য সারি এবং শূন্য কলাম সহ একটি খালি ডেটাফ্রেম এবং শূন্য সারি সহ একটি ফাঁকা ডেটাফ্রেম এবং কমপক্ষে একটি কলামের মধ্যে পার্থক্য রয়েছে । প্রতিটি ক্ষেত্রে সূচকের দৈর্ঘ্য 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
1) যদি কোনও ডেটা ফ্রেম ন্যান এবং নন নাল মান পেয়ে থাকে এবং আপনি ডেটা ফ্রেম কিনা তা সন্ধান করতে চান
খালি বা না হয় এই কোড চেষ্টা করুন।
২) এই পরিস্থিতি কখন হতে পারে? 
যখন একক ফাংশন একাধিক ডেটা ফ্রেমের প্লট করতে ব্যবহৃত হয় তখন এই পরিস্থিতিটি ঘটে 
যা প্যারামিটার হিসাবে পাস করা হয় such এমন পরিস্থিতিতে ফাংশনটি ডেটা প্লট করার চেষ্টা করে 
যখন কোনও ডেটাফ্রেম খালি থাকে এবং এইভাবে একটি খালি চিত্র প্লট করে!
কেবল 'ডেটাফ্রেমের কোনও ডেটা নেই' বার্তা প্রদর্শন করা হলে তা বোধগম্য হবে।
3) কেন? 
যদি কোনও ডেটা ফ্রেম খালি থাকে (যেমন কোনও তথ্য থাকে না Nan আপনাকে ন্যান মান সহ ডেটাফ্রেম মনে করে 
শূন্য হিসাবে বিবেচনা করা হয়) তবে এটি চক্রান্ত না করা বা বার্তা দেওয়া বাঞ্ছনীয়:
ধরুন আমাদের কাছে দুটি ডাটাফ্রেমস ডিএফ 1 এবং ডিএফ 2 রয়েছে।
Myfunc ফাংশনটি কোনও ডেটাফ্রেম নেয় (এই ক্ষেত্রে 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')

এই কোডটি কীভাবে এবং কেন এই সমস্যার সমাধান করে তার একটি ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে যদিও আপনার পোস্টের গুণমান উন্নত করতে সত্যই সহায়তা করবে এবং সম্ভবত আরও বেশি ভোটের ফলাফল হবে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, কেবল এখনই জিজ্ঞাসা করা ব্যক্তি নয়। দয়া করে সম্পাদনা ব্যাখ্যা যোগ করতে পারেন এবং সীমাবদ্ধতা এবং অনুমানের কি প্রয়োগ একটি ইঙ্গিত দিতে আপনার উত্তর। পর্যালোচনা থেকে
ডাবল-বীপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.