Python Pandas DtypeWarning Especifique la opción dtype en la importación: ¿cómo?

Tengo estas columnas:

['Campaign', 'Ad group', 'Keyword', 'Status', 'Match type', 'Max. CPC', 'Quality score', 'Impressions', 'Clicks', 'CTR', 'Avg. CPC', 'Cost', 'Avg. position', 'Converted clicks', 'Click conversion rate', 'Cost / converted click', 'Bounce rate', 'Pages / session', 'Avg. session duration (seconds)', '% new sessions'] 

El error que estoy recibiendo dice:

 Warning (from warnings module): File "C:\Python34\lib\site-packages\pandas\io\parsers.py", line 1164 data = self._reader.read(nrows) DtypeWarning: Columns (5) have mixed types. Specify dtype option on import or set low_memory=False. 

¿Qué significa la parte de Columns (5) ? ¿Es esa la posición de la columna? ¿Comienza la columna de Campaign en la posición 0 o 1?

Además, sospecho que este error es porque mi Max. CPC Max. CPC columna de Max. CPC tiene ' --' en algunas áreas en lugar de ceros. Quiero que este tipo de datos de columna sea un flotante. ¿Cómo traduzco estos ' --' a 0.00 y también configuro esta columna como un tipo de datos flotante al leer el CSV?

He intentado:

 import pandas as pd import numpy as np df = pd.read_csv('file.csv', dtype={'Max. CPC': pd.np.float64}) print(df.head()) 

Pero consigue un ValueError:

 ValueError: could not convert string to float: ' --' 

Se me ocurren dos enfoques, uno es pasar una lista de valores que read_csv puede considerar tratar como valores NaN , esto convertiría esos valores en la lista para convertirlos a NaN modo que el tipo de esa columna permanezca como un float y no object

 df = pd.read_csv('file.csv', dtype={'Max. CPC': pd.np.float64}, na_values=[' --']) 

Luego puede convertir estos valores de NaN a 0.00 llamando a fillna :

 df['Max. CPC'] = df['Max. CPC'].fillna(0.00) 

La otra es cargar como antes y replace estos valores a 0.00 :

 df['Max. CPC'] = df['Max. CPC'].replace(' --', 0.00)