मैं पांडा से आईएलओसी का उपयोग कर एक सीएसवी से डेटा निकाल रहा हूँ। जब मैं एक स्तंभ और पंक्ति का पाठ निकालना चाहता हूं जहां कुछ भी नहीं है, तो यह मुझे यह त्रुटि देता है: IndexError: एकल स्थितीय अनुक्रमणिका सीमा से बाहर है

मुझे अच्छी तरह पता है कि यह त्रुटि क्यों दिखाई देती है, लेकिन मैं चाहता हूं कि त्रुटि के स्थान पर मैं बस कुछ भी या ऐसा ही कुछ न डालूं।

क्या कोई तरीका है कि जब मैं खाली सेल से टेक्स्ट निकालने का प्रयास करता हूं तो यह मुझे कोई नहीं, 0 या ऐसा कुछ देता है?

यह वैसे कोड है:

        products = pd.read_csv("priv/products.csv")
        product_1 = products.iloc[0,1]
0
john eat 9 नवम्बर 2020, 20:29

2 जवाब

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

आप इसे हमेशा कोशिश ब्लॉक में चिपका सकते हैं। यदि आप पाते हैं कि यह आपके कोड को अव्यवस्थित करता है तो आप एक सहायक कार्य कर सकते हैं।

def tryloc(df, col, idx, default=None):
  try:
    return df.iloc[col, idx]
  except IndexError:
    return default

products = pd.read_csv("priv/products.csv")
product_1 = tryloc(products, 0, 1)
0
DragonBobZ 9 नवम्बर 2020, 21:08

एक वाक्यविन्यास त्रुटि की तरह दिखता है। दस्तावेज़ीकरण के अनुसार आप केवल निम्नलिखित को iloc के इनपुट के रूप में पास करें:

.iloc[] मुख्य रूप से पूर्णांक स्थिति आधारित है (अक्ष की 0 से लंबाई-1 तक), लेकिन इसका उपयोग बूलियन सरणी के साथ भी किया जा सकता है।

अनुमत इनपुट हैं:

एक पूर्णांक, उदा। 5.

पूर्णांकों की सूची या सरणी, उदा. [४, ३, ०]।

इनट्स के साथ एक टुकड़ा वस्तु, उदा। 1:7.

एक बूलियन सरणी।

उसके आधार पर, यह आपकी समस्या का समाधान कर सकता है:

products = pd.read_csv("priv/products.csv")
product_1 = products.iloc[[0,1]]
0
James Tollefson 9 नवम्बर 2020, 20:34