2016-05-25 5 views
5

मैं एक डेटा सीमा में एक टैब सीमित पाठ फ़ाइल पढ़ने की कोशिश कर रहा हूं।पांडस read_table त्रुटि

यह कैसे फ़ाइल Excel में दिखाई देता है:

df = p.read_table("E:/FileLoc/ThisIsAFile.txt", encoding = "iso-8859-1") 

अब यह स्तंभ अनुक्रमणिका के हिस्से के रूप पहले 3 कॉलम दिखाई नहीं करता है (:

CALENDAR_DATE ORDER_NUMBER INVOICE_NUMBER TRANSACTION_TYPE CUSTOMER_NUMBER CUSTOMER_NAME 
5/13/2016 0:00 13867666  6892372    S     2026   CUSTOMER 1 

एक df में आयात करें डीएफ [0] = लेनदेन का प्रकार) और सभी शीर्षलेख इसे प्रतिबिंबित करने के लिए स्थानांतरित होते हैं।

       CALENDAR_DATE ORDER_NUMBER INVOICE_NUMBER 
5/13/2016 0:00 13867666 6892372  S    2026   CUSTOMER 1 

मैं टेक्स्ट फ़ाइल में हेरफेर करने की कोशिश कर रहा हूं और फिर इसे अंतिम परिणाम के रूप में एक MySQL डेटाबेस में आयात कर रहा हूं।

उत्तर

4

आप विभाजक 2 और अधिक व्हाइटस्पेस साथ read_csv उपयोग कर सकते हैं:

import pandas as pd 
import io 

temp=u"""CALENDAR_DATE ORDER_NUMBER INVOICE_NUMBER TRANSACTION_TYPE CUSTOMER_NUMBER CUSTOMER_NAME 
5/13/2016 0:00 13867666  6892372    S     2026   CUSTOMER 1""" 
#after testing replace io.StringIO(temp) to filename 
df =pd.read_csv(io.StringIO(temp), sep=r'\s{2,}', engine='python', encoding = "iso-8859-1") 
print (df) 
    CALENDAR_DATE ORDER_NUMBER INVOICE_NUMBER TRANSACTION_TYPE \ 
0 5/13/2016 0:00  13867666   6892372    S 

    CUSTOMER_NUMBER CUSTOMER_NAME 
0    2026 CUSTOMER 1 

तो विभाजक tabulator है, sep='\t' का उपयोग करें।

संपादित करें:

मैं अपने डेटा के साथ यह परीक्षण और यह काम करता है:

import pandas as pd 

df = pd.read_csv('test/AnonymizedData.txt', sep='\t') 
print (df) 

    CUSTOMER_NUMBER CUSTOMER_NAME CUSTOMER_BRANCH_CODE CUSTOMER_BRANCH_NAME \ 
0    2026 CUSTOMER 1     83  SALES BRANCH 1 
1    2359 CUSTOMER 2     76  SALES BRANCH 2 
2   100662 CUSTOMER 3     28  SALES BRANCH 3 
3    3245 CUSTOMER 4     84  SALES BRANCH 4 
4    3179 CUSTOMER 5     28  SALES BRANCH 5 
5   39881 CUSTOMER 6     67  SALES BRANCH 6 
6   37020 CUSTOMER 7     58  SALES BRANCH 7 
7    1239 CUSTOMER 8     50  SALES BRANCH 8 
8    2379 CUSTOMER 9     76  SALES BRANCH 9 

    CUSTOMER_CITY CUSTOMER_STATE  ...  PRICING_PRODUCT_TYPE_CODE \ 
0  TOWN 1    CO  ...        11 
1  TOWN 2    OH  ...        11 
2  TOWN 3    ME  ...        11 
3  TOWN 4    IL  ...        11 
4  TOWN 5    NH  ...        11 
5  TOWN 6    TX  ...        11 
6  TOWN 7    NC  ...        11 
7  TOWN 8    NY  ...        11 
8  TOWN 9    OH  ...        11 

    PRICING_PRODUCT_TYPE ORGANIZATION_ID ORGANIZATION_NAME PRODUCT_LINE_CODE \ 
0   DISPOSABLES    83 ORGANIZATIONNAME    891 
1   DISPOSABLES    83 ORGANIZATIONNAME    891 
2   DISPOSABLES    83 ORGANIZATIONNAME    891 
3   DISPOSABLES    83 ORGANIZATIONNAME    891 
4   DISPOSABLES    83 ORGANIZATIONNAME    891 
5   DISPOSABLES    83 ORGANIZATIONNAME    891 
6   DISPOSABLES    83 ORGANIZATIONNAME    891 
7   DISPOSABLES    83 ORGANIZATIONNAME    891 
8   DISPOSABLES    83 ORGANIZATIONNAME    891 

    PRODUCT_LINE ROBOTIC_FLAG Unnamed: 52 Unnamed: 53 Unnamed: 54 
0 PRODUCTNAME    N   N   NaN   3 
1 PRODUCTNAME    N   N   NaN   3 
2 PRODUCTNAME    N   N   NaN   2 
3 PRODUCTNAME    N   N   NaN   7 
4 PRODUCTNAME    N   N   NaN   1 
5 PRODUCTNAME    N   N   NaN   4 
6 PRODUCTNAME    N   N   NaN   3 
7 PRODUCTNAME    N   N   NaN   5 
8 PRODUCTNAME    N   N   NaN   3 

[9 rows x 55 columns] 
+0

read_csv कोशिश कर रहा है, मैं: ValueError: 3 लाइन में 7 क्षेत्रों अपेक्षित हैं, देखा 17 – ctd25

+0

डेटा के विभाजक क्या है? क्या आप टेक्स्ट संपादक में 'txt' फ़ाइल खोल सकते हैं जैसे 'नोटपैड ++' और इसे जांचें? – jezrael

+0

क्षमा करें, यह टैब – ctd25