ऐसा लगता है कि मैं जिस डेटा स्रोत (एपीआई) से खींच रहा हूं, उसमें एक अजीब '-' प्रतीक है जो तब पहचाना नहीं जाता जब मैं str.replace करता हूं। यहां वह कोड और लाइब्रेरी है जिसका मैंने उपयोग किया था। pd.to_numeric पर त्रुटि होती है। फ्लोट के रूप में कास्टिंग स्थिति के बिना एक ही त्रुटि देता है।

Y = xy['QPerf'].str.rstrip('%')
Y = Y.str.replace('-', '-')
Y = pd.to_numeric(Y)
Y = Y.apply(lambda x: 1 if x > 0 else 0)
print(Y)

मैंने str.encode('UTF-8').str.decode('UTF-8') की कोशिश की है लेकिन आश्चर्यजनक रूप से यह काम नहीं करता है।

इस पर प्रयास करने के लिए अपना स्वयं का डेटा प्राप्त करने के लिए लाइब्रेरी कोड यहां दिया गया है।

from finvizfinance.quote import finvizfinance
from finvizfinance.screener.overview import Overview

stock = finvizfinance('TSLA')
stock_fundament = stock.TickerFundament()
qperf = stock_fundament['Perf Quarter']

यह एक डेटाफ्रेम लौटाएगा।

0
Bigboss01 14 अगस्त 2021, 23:58
1
यह एक अलग यूनिकोड वर्ण हो सकता है जो समान दिखता है। क्या आप इस वर्ण के साथ अपने डेटा का एक उदाहरण निकाल सकते हैं और फिर print(repr(value)) ताकि हम इसे भी देख सकें। आप चरित्र को अलग भी कर सकते हैं और यह देखने के लिए ord(the_character) कर सकते हैं कि यह 45 (ascii डैश) है या कुछ और।
 – 
tdelaney
15 अगस्त 2021, 00:24
1
आपकी टिप्पणी के लिए धन्यवाद, यह सिर्फ एक नान मूल्य था इसलिए प्रतिस्थापित इसे संभाल नहीं रहा था।
 – 
Bigboss01
15 अगस्त 2021, 00:43

1 उत्तर

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

आप हमेशा त्रुटियों को अनदेखा कर सकते हैं और errors='coerce' पैरामीटर। शायद यही - का मतलब भी है, यह कोई संख्या नहीं है, यह लापता डेटा का प्रतिनिधित्व कर रहा है।

Y = pd.to_numeric(xy['QPer'].str.rstrip('%'), errors='coerce')

यह किसी भी अन्य त्रुटियों को अनदेखा करने का नकारात्मक पक्ष है, और हो सकता है कि आप उन स्वरूपण त्रुटियों को याद कर सकें जिनके बारे में आप जानना चाहते हैं।

यदि आप एक csv फ़ाइल से पढ़ रहे थे, तो आप na_values का उपयोग यह निर्दिष्ट करने के लिए कर सकते हैं कि - का मतलब NaNs है। इस संदर्भ में हम उपयोग कर सकते हैं .mask() - को NaNs से बदलने के लिए, और फिर to_numeric का उपयोग करें:

Y = pd.to_numeric(xy['QPer'].str.rstrip('%').mask(xy['QPer'] == '-'))
1
Cimbali 15 अगस्त 2021, 00:15
मुझे लगता है कि यह एक उपयोगी उत्तर है। मैंने अपनी त्रुटि का गलत निदान किया था, यह पता चला है कि त्रुटि-उत्पादक '-' डेटासेट में NaN से आ रहा था- नकारात्मक प्रतिशत मान नहीं। इसलिए मैंने अभी xy = xy.loc[xy['QPerf'] != '-'] का उपयोग किया है। आपके उत्तर और आपके द्वारा कवर किए गए अतिरिक्त मामलों के लिए धन्यवाद।
 – 
Bigboss01
15 अगस्त 2021, 00:41