2016-09-06 3 views
5

का उपयोग कर काम नहीं कर रहा है यह वास्तव में अजीब है। मैंने पांडा डेटाफ्रेम से गायब डेटा के साथ पंक्तियों को छोड़ने के कई तरीकों की कोशिश की है, लेकिन उनमें से कोई भी काम नहीं कर रहा है। इस कोड है (मैं तरीकों में से सिर्फ टिप्पणी हटाएं एक का उपयोग किया है - लेकिन इन तीन कि मैं विभिन्न संशोधनों में इस्तेमाल कर रहे हैं - इस नवीनतम है):पांडा - गायब डेटा के साथ पंक्तियों को छोड़ना .isnull(), notnull(), ड्रॉपना()

import pandas as pd 
Test = pd.DataFrame({'A':[1,2,3,4,5],'B':[1,2,'NaN',4,5],'C':[1,2,3,'NaT',5]}) 
print(Test) 
#Test = Test.ix[Test.C.notnull()] 
#Test = Test.dropna() 
Test = Test[~Test[Test.columns.values].isnull()] 
print "And now" 
print(Test) 

लेकिन सभी मामलों में, सब मैं यह है :

A B C 
0 1 1 1 
1 2 2 2 
2 3 NaN 3 
3 4 4 NaT 
4 5 5 5 
And now 
    A B C 
0 1 1 1 
1 2 2 2 
2 3 NaN 3 
3 4 4 NaT 
4 5 5 5 

क्या कोई गलती है जो मैं कर रहा हूं? या समस्या क्या है? आदर्श रूप में, मैं इस प्राप्त करना चाहते हैं:

A B C 
0 1 1 1 
1 2 2 2 
4 5 5 5 
+3

कर आप वास्तव में तार' NaN' है और 'NaT' और 'np.datetime64 ('NaN')' - '.dropna()' के रूप में बाद में सही ढंग से काम करेगा ... –

+0

स्ट्रिंग या np.nan ने कोई फर्क नहीं पड़ता :( – durbachit

उत्तर

7

आपका उदाहरण DF NaN और NaT के रूप में तार जो .dropna, .notnull और सह है। falsey पर विचार नहीं करेंगे, तो आपके उदाहरण आप उपयोग कर सकते हैं ...

df[~df.isin(['NaN', 'NaT']).any(axis=1)] 

जो तुम देता दी:

A B C 
0 1 1 1 
1 2 2 2 
4 5 5 5 

आप एक DF जैसे (np.nan और np.datetime64('NaT') के उपयोग को ध्यान में था

df = pd.DataFrame({'A':[1,2,3,4,5],'B':[1,2,np.nan,4,5],'C':[1,2,3,np.datetime64('NaT'),5]}) 

फिर df.dropna() चल रहा है जो आप दे::

बजाय तार के
A B C 
0 1 1.0 1 
1 2 2.0 2 
4 5 5.0 5 

ध्यान दें कि B अब एक पूर्णांक के बजाय float है क्योंकि NaN मानों को संग्रहीत करने की आवश्यकता है।

+0

कूल, पहला समाधान काम किया:) धन्यवाद! – durbachit

4

मूल डेटा पर इस प्रयास करें: बजाय `np.nan` की

Test.replace(["NaN", 'NaT'], np.nan, inplace = True) 
Test = Test.dropna() 
Test 

या डेटा को संशोधित करते हैं और इस

import pandas as pd 
Test = pd.DataFrame({'A':[1,2,3,4,5],'B':[1,2,np.nan,4,5],'C':[1,2,3,pd.NaT,5]}) 
print(Test) 
Test = Test.dropna() 
print(Test) 



    A B C 
0 1 1.0 1 
1 2 2.0 2 
4 5 5.0 5 
+0

ठीक है, यह भी काम किया! (इनस्थल प्रतिस्थापन) – durbachit

संबंधित मुद्दे