मैं एक टिप्पणी छोड़ने जा रहा था, लेकिन मुझे लगा कि मैं एक जवाब लिखूंगा क्योंकि यह काफी जटिल हो रहा है। निम्न डेटा फ्रेम से शुरू करें: जो this post
से जवाब पर आधारित है:
import pandas as pd
import numpy as np
df = pd.DataFrame([['a', 'b', np.nan], [np.nan, 'c', 'c'], ['c', 'd', 'a']],
columns=['col1', 'col2', 'col3'])
df
col1 col2 col3
0 a b NaN
1 NaN c c
2 c d a
और कहते हैं कि हम करना चाहते हैं स्तंभों में Nans साथ पंक्तियों रखने col2
और col3
एक तरीका यह है के लिए निम्न है
df.loc[pd.isnull(df[['col2', 'col3']]).any(axis=1)]
col1 col2 col3
0 a b NaN
तो यह हमें उन पंक्तियों को देता है जो गिराए जाएंगे यदि हमने रुचि के कॉलम में नैन के साथ पंक्तियां गिरा दीं। कॉलम हम एक ही कोड चला सकते हैं रखने के लिए, लेकिन एक ~
का उपयोग चयन को उलटने के लिए
df.loc[~pd.isnull(df[['col2', 'col3']]).any(axis=1)]
col1 col2 col3
1 NaN c c
2 c d a
इस के बराबर है:
df.dropna(subset=['col2', 'col3'])
कौन सा हम कर सकते हैं टेस्ट:
df.dropna(subset=['col2', 'col3']).equals(df.loc[~pd.isnull(df[['col2', 'col3']]).any(axis=1)])
True
आप निश्चित रूप से अपने स्वयं के बड़े डेटा फ्रेम पर इसका परीक्षण कर सकते हैं लेकिन एक ही जवाब प्राप्त करना चाहिए।
मुझे वास्तव में इस समाधान का समाधान पसंद है। ध्यान दें कि ''' '' '' के पक्ष में बहिष्कृत कर दिया गया है। – johnchase