दिलचस्प पोस्ट
जब std :: चालन फ़ंक्शन रिटर्न मान पर किया जाना चाहिए? जावास्क्रिप्ट: कई मूल्यों के मुकाबले एक मूल्य की तुलना करने के लिए सबसे सुंदर तरीका बेस 64 एन्कोडेड छवि भेजना / प्रदर्शित करना कैसे जांचने के लिए कि कोई पूर्णांक एक सीमा के भीतर है? सेलेनियम के साथ दृश्य में तत्व स्क्रॉल करें क्या मैं (पॉइंटर! = नल) के बजाय अगर (सूचक) का उपयोग कर सकता हूं? जब मेरी खोल स्क्रिप्ट निकल जाए तो मैं पृष्ठभूमि प्रक्रियाओं / नौकरियों को कैसे मारूं? एसक्यूएल क्वेरी के साथ अल्पविराम से पृथक मूल्य क्या अमेज़ॅन एपीआई गेटवे द्वारा लौटाए गए http स्थिति कोड को बदलने का एक तरीका है? जार के भीतर कक्षापथ संसाधन Google नक्शा V3 पर छवि / मार्कर की छवि घूर्णन करना jquery – क्लिक करें घटना गतिशील बनाया बटन के लिए काम नहीं कर रहा है जावास्क्रिप्ट में पीडीएफ से टेक्स्ट निकालें मुद्रण सी 0 में है? आप अपाचे में अधिकतम कनेक्शन की अधिकतम संख्या कैसे बढ़ाते हैं?

एक डेटाफ्रेम में स्ट्रिंग्स, लेकिन dtype ऑब्जेक्ट है

पंड्या मुझे क्यों बताते हैं कि मेरे पास वस्तुओं हैं, हालांकि चयनित स्तंभ में प्रत्येक वस्तु स्ट्रिंग है – स्पष्ट रूपांतरण के बाद भी।

यह मेरा डेटाफ़्रेम है:

<class 'pandas.core.frame.DataFrame'> Int64Index: 56992 entries, 0 to 56991 Data columns (total 7 columns): id 56992 non-null values attr1 56992 non-null values attr2 56992 non-null values attr3 56992 non-null values attr4 56992 non-null values attr5 56992 non-null values attr6 56992 non-null values dtypes: int64(2), object(5) 

उनमें से पांच dtype object । मैं स्पष्ट रूप से उन वस्तुओं को तारों में कनवर्ट करता हूं:

 for c in df.columns: if df[c].dtype == object: print "convert ", df[c].name, " to string" df[c] = df[c].astype(str) 

फिर, df["attr2"] अभी भी dtype object , हालांकि type(df["attr2"].ix[0] पता चलता है, जो सही है

पांडु अंतर float64 और float64 और object बीच अंतर करता है। इसके पीछे तर्क क्या है जब कोई dtype str नहीं dtype str ? object कारण एक str क्यों है?

Solutions Collecting From Web of "एक डेटाफ्रेम में स्ट्रिंग्स, लेकिन dtype ऑब्जेक्ट है"

Dtype ऑब्जेक्ट NumPy से आता है, यह एक ndarray में तत्व के प्रकार का वर्णन करता है। एक ndarray में प्रत्येक तत्व का एक ही आकार बाइट में होना चाहिए। Int64 और float64 के लिए, वे 8 बाइट्स हैं। लेकिन स्ट्रिंग के लिए, स्ट्रिंग की लंबाई तय नहीं होती है। इसलिए सीधे ndarray में स्ट्रिंग्स के बाइट्स को बचाने के बजाय, पांडा ऑब्जेक्ट अंडररा का उपयोग करते हैं, जो ऑब्जेक्ट्स को पॉइंटर्स से बचाते हैं, इस वजह से इस तरह के डीडीआरएआर का ऑब्जेक्ट ऑब्जेक्ट है।

यहाँ एक उदाहरण है:

  • int64 सरणी में 4 int64 मान होता है।
  • ऑब्जेक्ट सरणी में 4 पॉइंटर्स 3 स्ट्रिंग ऑब्जेक्ट होते हैं।

यहां छवि विवरण दर्ज करें