【问题标题】:TypeError: Can't convert 'module' object to str implicitlyTypeError:无法将“模块”对象隐式转换为 str
【发布时间】:2016-11-12 05:05:01
【问题描述】:

我想对这个 Dataframe(named:loandata) 进行分类并将每个子数据框导入到许多 csv 文件中。第一步,我尝试转换其中一个结果,可惜失败了,得到了这个错误:

import pandas as pd
import csv
import os

#readfile
loandata=pd.DataFrame(pd.read_table('/Users/lixuefei/Desktop/Sample Dataset/test.txt',header = None,index_col=2))

#classify
volume_type=list(set(loandata[3]))
system_type=list(set(loandata[4]))
area_name=list(set(loandata[5]))

df=pd.DataFrame(loandata[(loandata[3]==volume_type[0])& (loandata[4]==system_type[0])&(loandata[5]==area_name[0])])
#set the file path
path='/Users/lixuefei/Desktop/Sample Dataset'
filename=volume_type[0]+system_type[0]+area_name[0]
filetype=csv

if not df.empty:
    df.to_csv(os.path.join(path,filename+filetype),header=None)
else:
    print("Empty")

这是错误:

/Users/lixuefei/anaconda/bin/python3.5/Users/lixuefei/PycharmProjects/project/project.11.09.py
   Traceback (most recent call last):
     File "/Users/lixuefei/PycharmProjects/project/project.11.09.py", line 25, in <module>
       df.to_csv(os.path.join(path,filename+filetype),header=None)
   TypeError: Can't convert 'module' object to str implicitly

【问题讨论】:

  • 你将模块分配给变量filetype=csv - 你忘记了"" - filetype="csv" 或者可能是事件filetype=".csv"

标签: python python-3.x csv pandas dataframe


【解决方案1】:

a) 空白是你的朋友。

b) filename 是一个字符串,filetype 是 csv 模块。

我想你的意思是:

filetype = "csv"

然后是以下之一:

os.path.join(path, filename + "." + filetype)

或者更好:

os.path.join(path, "%s.%s" % (filename, filetype))

或“正确”的 Python 3 方式:

os.path.join(path, "{}.{}".format(filename, filetype))

【讨论】:

    猜你喜欢
    • 2017-08-31
    • 2012-11-19
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2018-09-12
    • 2018-12-07
    相关资源
    最近更新 更多