python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas报错'DataFrame' object has no attribute 'as_matrix'

解决pandas报错'DataFrame' object has no attribute 'as_matrix'问题

作者:qiuqiu1027

这篇文章主要介绍了解决pandas报错'DataFrame' object has no attribute 'as_matrix'问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

解决pandas报错'DataFrame' object has no attribute 'as_matrix'

data = data.as_matrix(columns = None) 

运行时报错==‘DataFrame’ object has no attribute ‘as_matrix’==先看pandas版本

pd.__version__

‘1.0.3’去pandas官网看该版本的方法说明:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.values.html

将上述代码改为

data = data.values

pandas一些报错的处理

1.cant convert the string to 'float[1,0]'

有的时候,我们有把【1,0】数组存进pandas里的需求,合理!

但是我们可能遇到这种情况。比如分类问题,比如mnist手写体识别。

x=tf.placeholder(tf.float32,[None,INPUT_NODE])
y_=tf.placeholder(tf.float32,[None,OUTPUT_NODE])

我们希望输入的是float类型,但是一旦我们把【1,0】以类似这样的形式存入:

 df2.fakelab1.loc[i]=[1,0]

最后,就会出错:cant convert the string to 'float[1,0]'

一查dataframe里的属性,发现对应的fakelab1的属性是object,不是float或者int。

解决方案

有多少数据,就存进几列里。

df2= pd.DataFrame(columns=['fakelab1','fakelab2'])  #新建具有列名的空的dataframe
 df2.fakelab1.loc[i]=1;
 df2.fakelab2.loc[i]=0;

效果如下: 

用print(dt.info())查看数据格式信息,发现已经不是object格式了

然后调用:

dataOutTr=pd.read_csv('./1.csv',usecols=[i for i in range(36,38)])    #fakelab1,fakelab2分别在36,37列。  

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文