TypeError: reduction operation 'argmin' not allowed for this dtype
使用pd.read_sql() 方法把Mysql的数据库转为dataframe后,使用 df['low'].idxmin() 或者df['low'].argmin() 方法是会出现这个错误。
TypeError: reduction operation 'argmin' not allowed for this dtype
把df的每列数据类型打印出来看看。
print df.dtypes
晕,居然把low这些float类型全部转为了object,所以解决办法就是把这些列的数据转为float64.
这样之后,问题就解决了。
date = date + '-01-01'
cmd = 'select * from `{}` where datetime > \'{}\''.format(code, date)
try:
df = pd.read_sql(cmd, history_engine,index_col='index')
except Exception,e:
print e
return None
# 不知道为啥,这里的类型发生改变
idx= df['low'].idxmin()
TypeError: reduction operation 'argmin' not allowed for this dtype
把df的每列数据类型打印出来看看。
print df.dtypes
datetime datetime64[ns]
code object
name object
open object
close object
high object
low object
vol float64
amount float64
dtype: object
晕,居然把low这些float类型全部转为了object,所以解决办法就是把这些列的数据转为float64.
df['low']=df['low'].astype('float64')
这样之后,问题就解决了。