এই প্রশ্নটি ইতিমধ্যে সমাধান হয়েছে, কিন্তু ...
... ওউটার তার মূল মন্তব্যে প্রস্তাবিত সমাধানটিও বিবেচনা করুন । অনুপস্থিত ডেটা সহ হ্যান্ডেল করার ক্ষমতা dropna()
স্পষ্টভাবে পান্ডায় অন্তর্নির্মিত। এটি ম্যানুয়ালি করার মাধ্যমে সম্ভাব্য উন্নত পারফরম্যান্স বাদে এই ফাংশনগুলি বিভিন্ন বিকল্পের সাথে আসে যা দরকারী হতে পারে।
In [24]: df = pd.DataFrame(np.random.randn(10,3))
In [25]: df.iloc[::2,0] = np.nan; df.iloc[::4,1] = np.nan; df.iloc[::3,2] = np.nan;
In [26]: df
Out[26]:
0 1 2
0 NaN NaN NaN
1 2.677677 -1.466923 -0.750366
2 NaN 0.798002 -0.906038
3 0.672201 0.964789 NaN
4 NaN NaN 0.050742
5 -1.250970 0.030561 -2.678622
6 NaN 1.036043 NaN
7 0.049896 -0.308003 0.823295
8 NaN NaN 0.637482
9 -0.310130 0.078891 NaN
In [27]: df.dropna() #drop all rows that have any NaN values
Out[27]:
0 1 2
1 2.677677 -1.466923 -0.750366
5 -1.250970 0.030561 -2.678622
7 0.049896 -0.308003 0.823295
In [28]: df.dropna(how='all') #drop only if ALL columns are NaN
Out[28]:
0 1 2
1 2.677677 -1.466923 -0.750366
2 NaN 0.798002 -0.906038
3 0.672201 0.964789 NaN
4 NaN NaN 0.050742
5 -1.250970 0.030561 -2.678622
6 NaN 1.036043 NaN
7 0.049896 -0.308003 0.823295
8 NaN NaN 0.637482
9 -0.310130 0.078891 NaN
In [29]: df.dropna(thresh=2) #Drop row if it does not have at least two values that are **not** NaN
Out[29]:
0 1 2
1 2.677677 -1.466923 -0.750366
2 NaN 0.798002 -0.906038
3 0.672201 0.964789 NaN
5 -1.250970 0.030561 -2.678622
7 0.049896 -0.308003 0.823295
9 -0.310130 0.078891 NaN
In [30]: df.dropna(subset=[1]) #Drop only if NaN in specific column (as asked in the question)
Out[30]:
0 1 2
1 2.677677 -1.466923 -0.750366
2 NaN 0.798002 -0.906038
3 0.672201 0.964789 NaN
5 -1.250970 0.030561 -2.678622
6 NaN 1.036043 NaN
7 0.049896 -0.308003 0.823295
9 -0.310130 0.078891 NaN
সারিগুলির পরিবর্তে কলাম বাদ দেওয়া সহ অন্যান্য বিকল্প ( http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rodna.html এ ডকস দেখুন ) রয়েছে।
বেশ সহজ!