2017-10-19 129 views
1

我有一個CSV文件是這樣的:用sep =';'導入csv文件由列蟒蛇 - 熊貓數據集

ATTRIBUTE_1;.....;ATTRIBUTE_N 
null;01;M;N;;N;1108;1;F205;;N;F;13;;N;S;2;N;6000000;;A010;40;B;2;10;42;N;;61;MI;01;N;N;S;;-1;N;N;01;;;;;;;;;;;;;;;;;;;;;;;;;;778,69 
      null;01;M;N;;N;1108;1;F205;;N;F;13;;N;S;2;N;6000000;;A010;40;B;2;10;42;N;;61;MI;01;N;N;S;;-1;N;N;01;;;;;;;;;;;;;;;;;;;;;;;;;;778,71 
      null;01;M;N;;N;1108;1;F205;;N;F;13;;N;S;2;N;6000000;;A010;40;B;2;10;42;N;;61;MI;01;N;N;S;;-1;N;N;01;;;;;;;;;;;;;;;;;;;;;;;;;;778,72 

當我嘗試在Python中導入該COMAND:

data = pd.read_csv(r"C:\...\file.csv") 

我的輸出是這樣的:

0 null;01;M;N;;N;1108;1;F205;;N;F;13;;N;S;2;N;60... 

如何按列導入csv?就像這樣:

ATTRIBUTE_1 ATTRIBUTE_2 .... ATTRIBUTE_N 
    NULL   01    778,69 
    NULL   01    778,71 
    ... 
    NULL   03    775,33 

回答

0

有問題,你的每一行開頭和"結束,所以必要的參數quoting=3,它意味着設置QUOTE_NONE

df = pd.read_csv('file.csv', sep=';', quoting=3) 
#strip " from first and last column 
df.iloc[:,0] = df.iloc[:,0].str.strip('"') 
df.iloc[:,-1] = df.iloc[:,-1].str.strip('"') 
#strip " from columns names 
df.columns = df.columns.str.strip('"') 

print (df.head()) 

    SIGLA TARGA CATEGORIA TARIFFARIA - LIVELLO 3 SESSO \ 
0  null         1  M 
1  null         1  M 
2  null         1  M 
3  null         1  M 
4  null         1  M 

    RCA - PATTO PER I GIOVANI VALORE FRANCHIGIA TIPO TARGA CILINDRATA \ 
0       N    NaN   N  1108 
1       N    NaN   N  1108 
2       N    NaN   N  1108 
3       N    NaN   N  1108 
4       N    NaN   N  1108 

    CODICE FORMA CONTRATTUALE RCA - RECUPERO COMUNE PRA \ 
0       1      F205 
1       1      F205 
2       1      F205 
3       1      F205 
4       1      F205 

    CODICE WORKSITE MARKETING  ...  Unnamed: 55 Unnamed: 56 \ 
0      NaN  ...    NaN   NaN 
1      NaN  ...    NaN   NaN 
2      NaN  ...    NaN   NaN 
3      NaN  ...    NaN   NaN 
4      NaN  ...    NaN   NaN 

    Unnamed: 57 Unnamed: 58 Unnamed: 59 Unnamed: 60 Unnamed: 61 Unnamed: 62 \ 
0   NaN   NaN   NaN   NaN   NaN   NaN 
1   NaN   NaN   NaN   NaN   NaN   NaN 
2   NaN   NaN   NaN   NaN   NaN   NaN 
3   NaN   NaN   NaN   NaN   NaN   NaN 
4   NaN   NaN   NaN   NaN   NaN   NaN 

    Unnamed: 63 PREMIO FINALE 
0   NaN   778,69 
1   NaN   778,70 
2   NaN   778,71 
3   NaN   778,72 
4   NaN   778,73 

[5 rows x 65 columns] 
+0

我可以嘗試使用九月= ';'但輸出始終是1列的熊貓數據框 – jjgasse

+0

如果添加參數'header = None,skiprows = 1'它是如何工作的?這些參數省略了列名,如果與數據大小不一樣 – jezrael

+0

情況沒有改變,總是有一列的數據幀,這可能是許多';;;;'在唱片結束? – jjgasse