pandas 0.23 - pandas.eval()

pandas.eval




pandas

pandas.eval

pandas.eval(expr, parser='pandas', engine=None, truediv=True, local_dict=None, global_dict=None, resolvers=(), level=0, target=None, inplace=False) [source]

विभिन्न बैकेंड का उपयोग करके एक स्ट्रिंग के रूप में पायथन अभिव्यक्ति का मूल्यांकन करें।

निम्नलिखित अंकगणितीय संक्रियाओं का समर्थन किया जाता है: + , - , * , / , ** , % , // (पाइथन इंजन केवल) के साथ साथ बूलियन संचालन: (या), & (और), और ~ (नहीं)। इसके अतिरिक्त, 'pandas' पार्सर के समान बिटकॉइन ऑपरेटरों के रूप में एक ही शब्दार्थ के साथ and , or का उपयोग करने की अनुमति देता है। Series और DataFrame वस्तुओं का समर्थन किया जाता है और व्यवहार किया जाता है क्योंकि वे सादे ओएल पायथन मूल्यांकन के साथ करेंगे।

पैरामीटर:

expr : str या यूनिकोड

मूल्यांकन करने की अभिव्यक्ति। इस स्ट्रिंग में कोई भी पाइथन statements नहीं हो सकता है, केवल पाइथन expressions

पार्सर : स्ट्रिंग, डिफ़ॉल्ट 'पांडा', {'पांडा', 'अजगर'}

अभिव्यक्ति से वाक्यविन्यास पेड़ के निर्माण के लिए उपयोग करने के लिए पार्सर। 'pandas' का डिफ़ॉल्ट कोड मानक पायथन की तुलना में थोड़ा अलग है। वैकल्पिक रूप से, आप सख्त अजगर शब्दार्थों को बनाए रखने के लिए 'python' पार्सर का उपयोग करके एक अभिव्यक्ति को पार्स कर सकते हैं। अधिक विवरण के लिए बेहतर प्रदर्शन प्रलेखन देखें।

इंजन : स्ट्रिंग या कोई नहीं, डिफॉल्ट 'न्यूनेक्सप्र', {'पाइथन', 'न्यूनेक्सप्र'}

अभिव्यक्ति का मूल्यांकन करने के लिए उपयोग किया जाने वाला इंजन। समर्थित इंजन हैं

  • कोई नहीं: numexpr का उपयोग करने की कोशिश करता है, python वापस गिरता है
  • 'numexpr': This default engine evaluates pandas objects using
    बड़े फ्रेम के साथ जटिल अभिव्यक्तियों में बड़ी गति अप के लिए सुन्न।
  • 'python': Performs operations as if you had eval'd in top
    स्तर अजगर यह इंजन आमतौर पर उतना उपयोगी नहीं होता है।

भविष्य में और अधिक बैकएंड उपलब्ध हो सकते हैं।

truediv : बूल, वैकल्पिक

क्या सही विभाजन का उपयोग करना है, जैसे कि पायथन> = 3 में

local_dict : तानाशाही या कोई नहीं, वैकल्पिक

स्थानीय चर का एक शब्दकोश, डिफ़ॉल्ट रूप से स्थानीय लोगों () से लिया गया है।

Global_dict : तानाशाही या कोई नहीं, वैकल्पिक

वैश्विक चर का एक शब्दकोष, डिफ़ॉल्ट रूप से ग्लोबल्स () से लिया गया है।

resolvers : तानाशाह की तरह की सूची या कोई नहीं, वैकल्पिक

__getitem__ विशेष विधि को लागू करने वाली वस्तुओं की एक सूची जिसे आप वैरिएबल लुकअप के लिए उपयोग करने के लिए नामस्थान के अतिरिक्त संग्रह को इंजेक्ट करने के लिए उपयोग कर सकते हैं। उदाहरण के लिए, यह DataFrame.index और DataFrame.columns चर को इंजेक्ट करने के लिए query() विधि में उपयोग किया जाता है जो उनके संबंधित DataFrame उदाहरण विशेषताओं को संदर्भित करता है।

स्तर : int, वैकल्पिक

पूर्व स्टैक फ्रेम की संख्या को पार करने और वर्तमान दायरे में जोड़ने के लिए। अधिकांश उपयोगकर्ताओं को इस पैरामीटर को बदलने की आवश्यकता नहीं होगी।

लक्ष्य : ऑब्जेक्ट, वैकल्पिक, डिफ़ॉल्ट कोई नहीं

यह असाइनमेंट के लिए लक्ष्य ऑब्जेक्ट है। इसका उपयोग तब किया जाता है जब अभिव्यक्ति में परिवर्तनशील कार्य होता है। यदि ऐसा है, तो target को स्ट्रिंग कुंजियों के साथ आइटम असाइनमेंट का समर्थन करना चाहिए, और यदि कोई प्रतिलिपि वापस की जा रही है, तो उसे .copy() भी समर्थन करना होगा।

निष्क्रिय : बूल, डिफ़ॉल्ट गलत

यदि target प्रदान किया गया है, और अभिव्यक्ति target को बदल देती है, चाहे target निष्क्रिय करना हो। अन्यथा, उत्परिवर्तन के साथ target की एक प्रति लौटाएं।

यह दिखाता है:
ndarray, संख्यात्मक स्केलर, DataFrame, Series
जन्म देती है:

ValueError

ऐसे कई उदाहरण हैं जहां इस तरह की त्रुटि उठाई जा सकती है:

  • target=None , लेकिन अभिव्यक्ति बहुस्तरीय है।
  • अभिव्यक्ति बहुस्तरीय है, लेकिन उन सभी में आइटम असाइनमेंट नहीं है। इस तरह की व्यवस्था का एक उदाहरण यह है:

    a = b + 1 a + 2

    यहां, विभिन्न रेखाओं पर अभिव्यक्तियां हैं, जो इसे बहुस्तरीय बनाती हैं, लेकिन अंतिम पंक्ति में कोई चर नहीं है जिसे a + 2 के आउटपुट को सौंपा गया है।

  • inplace=True , लेकिन अभिव्यक्ति आइटम असाइनमेंट गुम है।
  • आइटम असाइनमेंट प्रदान किया जाता है, लेकिन target स्ट्रिंग आइटम असाइनमेंट का समर्थन नहीं करता है।
  • आइटम असाइनमेंट प्रदान किया गया है और inplace=False , लेकिन target .copy() विधि का समर्थन नहीं करता है

यह भी देखें

query() , pandas.DataFrame.eval

टिप्पणियाँ

एक अंकगणितीय % ऑपरेशन में शामिल किसी भी ऑब्जेक्ट के float64 को float64 रूप से डाला जाता है।

अधिक विवरण के लिए बेहतर प्रदर्शन प्रलेखन देखें।