python pandas dtypewarning在导入方面指定dtype选项 - 如何



我有这些列:

['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']

我收到的错误说:

Warning (from warnings module):
  File "C:Python34libsite-packagespandasioparsers.py", line 1164
    data = self._reader.read(nrows)
DtypeWarning: Columns (5) have mixed types. Specify dtype option on import or set low_memory=False.

Columns (5)零件是什么意思?那是列位置吗?Campaign列在位置0还是1?

开始

另外,我怀疑此错误是因为我的Max. CPC列在少数区域而不是零具有' --'。我希望此列数据类型是浮点。如何将这些' --'转换为0.00,并在阅读CSV时将此列设置为float数据类型?

我尝试过:

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

但要获得一个值:

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

有两种我能想到的方法,一种是传递read_csv可以考虑将其视为NaN值的值列表,这将转换列表中的这些值以要转换为NaN,以便该列的dtype保留为float,而不是object

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

然后,您可以将这些NaN值转换为0.00调用fillna

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

另一个是像以前一样加载,而replace这些值将到0.00

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

最新更新