我一直在调试我的脚本,并将我的问题缩小到几行我认为导致我的问题的代码。我正在从 3 个 csv 文件中读取数据,从 SQL Server 中的存储过程中提取数据,并将两者中的数据导出到 excel 文件中以绘制 cmparisons。我遇到的问题是我的源文件正在生成重复项(每个源文件中的一行)。我将打印语句放入以下数据中以查看发生了什么。
#convert district codes to strings
if dfyearfound:
df2['district_code']=df2['district_code'].apply(lambda x: str(x))
print df2['district_code'][df2.index[0]]
df2['district_type_code']=df2['district_type_code'].apply(lambda x: str(x))
print df2['district_type_code'][df2.index[0]]
if teacheryearfound:
teacherframe['district_code']=teacherframe['district_code'].apply(lambda x: str(x))
print teacherframe['district_code'][teacherframe.index[0]]
teacherframe['district_type_code']=teacherframe['district_type_code'].apply(lambda x: str(x))
print teacherframe['district_type_code'][teacherframe.index[0]]
if financialyearfound:
financialframe['district_code']=financialframe['district_code'].apply(lambda x: str(x))
print financialframe['district_code'][financialframe.index[0]]
financialframe['district_type_code']=financialframe['district_type_code'].apply(lambda x: str(x))
print financialframe['district_type_code'][financialframe.index[0]]
print 语句给了我以下输出: 1, 1, 1, 3.0, 0012, 1
所有 dist_code 的长度应为 4,并且它们在源文件中从 1 位到 4 位不等。在数据库中,它们都是 4 位数字(例如:0001、0012)。区类型为1位或2位,在数据库中均为2(例:01、03)。我不确定为什么上面的字符串转换不起作用。我打算编写一个函数来格式化 District_code 和 District_type_code 但我不想硬编码长度并且我写的函数我无法开始工作:
#function for formating district codes
def formatDistrictCodes(code):
dist=code
dist.zfill(4)
return dist
formatDistrictCodes(districtformat)