मैं एक कॉलम के मान के आधार पर एक Dask DataFrame की कुछ पंक्तियों को छोड़ना चाहता हूं।

मुझे ऐसा करने में अतीत में कोई समस्या नहीं हुई है:

ddf = ddf[ (ddf['col'] == str1) | (ddf['col'] == str2)]

मेरे पास अब जो है वह थोड़ा अलग है। इस कॉलम में 'abc, def, ghk' जैसी स्ट्रिंग है और अगर इसमें 'abc' या 'doh' नहीं है तो मैं इसे छोड़ना चाहता हूं।

मैंने सामान की कोशिश की है जैसे:

 ddf = ddf[ ('abc' in ddf['col']) | ('doh' in ddf['col'])]

लेकिन मुझे मिलता है

 KeyError: True

(मुझे लगता है) क्योंकि अभिव्यक्ति एक बूल लौटाती है और उस मूल्य के साथ कोई कुंजी नहीं है,

और

 ddf = ddf.drop(ddf.index[('abc' in ddf['col']) | ('doh' in ddf['col'])])

जो मुझे देता है

 NotImplementedError: Series getitem in only supported for other series objects with matching partition structure

मैं क्या गलत कर रहा हूं?

0
IDK 10 सितंबर 2020, 15:49

1 उत्तर

सबसे बढ़िया उत्तर

'abc' in ddf['col'] यह देखने के लिए देखता है कि क्या स्ट्रिंग 'abc' कॉलम में कहीं भी है, और एक मान लौटाता है। यदि आप डेटाफ़्रेम को स्लाइस करने के लिए दो सरणियाँ चाहते हैं, तो इसके बजाय इसका उपयोग करें:

 ddf = ddf[ (ddf['col'].str.isin('abc')) | (ddf['col'].str.isin('doh'))]
2
Spencer Tibbitts 10 सितंबर 2020, 15:59