我有这些列:
['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)