मैं पांडा पुस्तकालय में डेटा फ्रेम के साथ काम कर रहा हूँ। मेरे पास एक्सेल में डेटा की एक तालिका है जिसे मैं एक सीएसवी के रूप में सहेजता हूं, फिर मैं कॉल करता हूं

df = pd.read_csv("file.csv")

मुझे उम्मीद है कि फ्रेम कुछ इस तरह दिखेगा

   Item1  Item2  Item3
0  12.00      3      2
1   4.00      8      4
2   3.14      2      8

लेकिन इसके बजाय मुझे मिलता है

   Item1  Item2  Item3 Unnamed: 3 Unnamed: 4
0  12.00      3      2        NaN        NaN
1   4.00      8      4        NaN        NaN
2   3.14      2      8        NaN        NaN

या कभी-कभी सभी NaN मानों वाली अतिरिक्त पंक्तियाँ। ऐसा प्रतीत होता है कि pandas को CSV के वास्तविक आकार की जानकारी नहीं है। एक्सेल में डेटा पूरी तरह से ठीक व्यवस्थित है, डेटा मान सभी गैर-रिक्त हैं और पूरी तरह से एक आयत में हैं। मैं यह कैसे तय करुं? क्या कोई ऐसा संपादन है जिसे मैं सीएसवी में कर सकता हूं जो इसका सही आकार निर्दिष्ट करेगा?

जैसा कि यहां अनुरोध किया गया है, डेटा का एक टुकड़ा है। यह लगभग 2500 पंक्तियों तक नीचे चला जाता है, और दाईं ओर कोई और मान नहीं है।

3
Anthony Ter 13 पद 2019, 02:42
1
क्या आप वास्तविक डेटा फ़ाइल का एक छोटा सा नमूना पोस्ट कर सकते हैं?
 – 
Simon
13 पद 2019, 02:54
अब हो गया!
 – 
Anthony Ter
13 पद 2019, 03:26
1
क्या आप वास्तविक सीएसवी कच्चे टेक्स्ट का एक स्निपेट पोस्ट कर सकते हैं जैसा कि नोटपैड जैसे संपादक में देखा गया है, एक्सेल में टेबल व्यू नहीं? मुझे नहीं लगता कि यहां पंडों के साथ कुछ हो रहा है, मुझे आपके डेटा सेट से कुछ लेना-देना होगा।
 – 
cwalvoort
13 पद 2019, 03:34
सीएसवी पार्सिंग के साथ एक आम समस्या सीमांकक है, सुनिश्चित करें कि आपके डेटा कॉलम में आपका सीमांकक नहीं है। ऐसा नहीं लगता कि यह आपके लिए मामला है। केवल मैं सोच सकता हूं कि आपकी पंक्ति एंडलाइन वर्ण आपकी मशीन की अपेक्षित एंडलाइन/न्यूलाइन वर्ण से मेल नहीं खा रहा है
 – 
Cyrois
13 पद 2019, 03:35
3
95% यकीन है कि सीएसवी गंदा है
 – 
adrianp
13 पद 2019, 03:51

1 उत्तर

आपके पास शायद एक सेल है जो मूल एक्सेल फ़ाइल में खाली नहीं है (उदाहरण के लिए एक स्थान )। यदि आपको पांडा में 2 अनाम कॉलम मिल रहे हैं, तो मूल एक्सेल फ़ाइल के 2 कॉलम को हटाने का प्रयास करें।

दूसरा तरीका यह होगा कि उन सभी कॉलमों को रखा जाए जो unnamed नहीं हैं। आप इसके साथ ऐसा कर सकते हैं:

real_cols = [x for x in df.columns if not x.startswith("Unnamed: ")]
df = df[real_cols]

और फिर आप csv को सेव कर सकते हैं।

1
villoro 13 पद 2019, 14:24