将“转换为”数据帧不会给出错误“无属性”dtyp

2024-04-25 07:44:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大小为153895行x 644列的pandas dataframe(从csv文件中读取),有一些列是string,其他列是integer和float。我正在尝试将其保存为Rda文件。在

我试过了:

import pandas.rpy.common as com
myDFinR = com.convert_to_r_dataframe(myDF)

我得到以下错误:

^{pr2}$

我试着做myDF.dtypes,但它没有给我任何异常的输出

col1        object
col2        object
col3        int64
...
col642      float64
col643      float64
col644      float64
Length: 644, dtype: object

当我尝试for i,j in enumerate(myDF.columns): print(i,":",myDF[j].dtype)时,它在第359列给了我一个错误。但是,如果我尝试myDF[[359]].dtypes它会给我

col359      float64
dtype: object

可能是什么问题?在


Tags: 文件csvcomdataframepandasstringobject错误
1条回答
网友
1楼 · 发布于 2024-04-25 07:44:17

myDF具有非唯一列名时,我可以重现错误消息:

import pandas as pd
import pandas.rpy.common as com

myDF = pd.DataFrame([[1,2],[3,4]], columns=['A','B'])
myDFinR = com.convert_to_r_dataframe(myDF)
print(myDFinR)   # 1

myDF2 = pd.DataFrame([[1,2],[3,4]], columns=['A','A'])
myDFinR2 = com.convert_to_r_dataframe(myDF2)
print(myDFinR2)  # 2
  1. 印刷品

      A B
    0 1 2
    1 3 4
    
  2. 引发AttributeError

    AttributeError: 'DataFrame' object has no attribute 'dtype'
    

如果这确实是问题的根源,则可以通过将列重命名为唯一的值来解决问题:

myDF.columns = ['col{i}'.format(i=i) for i in range(len(myDF.columns))]

相关问题 更多 >