2015-11-27 38 views
25

में स्ट्रिंग के लिए वस्तु के रूप में dtype साथ परिवर्तित करने के लिए जब मैं dataframe पांडा के लिए एक csv फ़ाइल को पढ़ने, प्रत्येक स्तंभ का अपना डेटाटाइप्स लिए डाली है। मेरे पास एक स्तंभ है जिसे किसी ऑब्जेक्ट में परिवर्तित किया गया था। मैं इस तरह के मूल्यों को विभाजित करने और एक सूची बनाने के रूप में इस स्तंभ के लिए स्ट्रिंग कार्रवाई करना चाहते हैं। लेकिन ऐसा कोई ऑपरेशन संभव नहीं है क्योंकि इसकी टाइप वस्तु है। किसी को भी मुझे जिस तरह से वस्तुओं के बजाय तार करने के लिए एक स्तंभ के सभी आइटम्स कन्वर्ट करने के लिए हमें बताएं कर सकते हैं?कैसे स्तंभ पांडा Dataframe

मैं कई तरीके की कोशिश की लेकिन कुछ भी नहीं काम किया। मैं astype, str() का उपयोग किया to_string आदि

a=lambda x: str(x).split(',') 
df['column'].apply(a) 

या

df['column'].astype(str) 
+1

जैसे डीएफ ['कॉलम'] का प्रयास किया गया है। Astype ('str') ?? कृपया str पर apostrophes पर ध्यान दें .. –

+6

पांडा हमेशा तारों को वस्तुओं के रूप में संग्रहीत करेंगे [इस लिंक को देखें] (http://stackoverflow.com/questions/21018654/strings-in-a-dataframe-but-dtype-is-object) – sushmit

उत्तर

9

आप स्तंभ के लिए इसे वापस बताए कोशिश की?

df['column'] = df['column'].astype('str') 

इस question की चर्चा करते हुए पांडा dataframe तार की ओर इशारा संग्रहीत करता है और इसलिए यह प्रकार 'वस्तु' की है। docs के अनुसार, आप की कोशिश कर सकते:

df['column_new'] = df['column'].str.split(',') 
+9

हाँ मुझे लगता है कि कोशिश की। उस कॉलम का डेटाटाइप कोशिश करने के बाद भी ऑब्जेक्ट के रूप में बना रहा। – user3546523

+0

आप अपने dataframe का एक नमूना पेस्ट कर सकता है? –

+0

मैंने जवाब संपादित किया है, कृपया जांचें कि यह –

6

के बाद से तार डेटा प्रकार चर लंबाई है, यह डिफ़ॉल्ट रूप से है वस्तु प्रकार के रूप में संग्रहीत। यदि आप उन्हें स्ट्रिंग प्रकार के रूप में स्टोर करना चाहते हैं, तो आप ऐसा कुछ कर सकते हैं।

df['column'] = df['column'].astype('|S80') #where the max length is set at 80 bytes, 

या वैकल्पिक रूप से

df['column'] = df['column'].astype('|S') # which will by default set the length to the max len it encounters 
+0

जो पाइथन संस्करण आप उपयोग कर रहे हैं? यह मेरे लिए काम नहीं करता है – Learner

0

आप df['column'].str. का उपयोग कर की कोशिश कर सकते हैं और फिर किसी भी स्ट्रिंग समारोह का उपयोग करें। पांडस दस्तावेज में split

संबंधित मुद्दे