2017-10-19 78 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