import pandas as pd import numpy as np from pandas import DataFrame,Series import os import datetime from datetime import datetime,timedelta from dateutil.parser import parse import time import warnings warnings.filterwarnings("ignore") path=os.getcwd()+'\\' count=0 df_nm=Series(0) ka=pd.read_csv(path+'KA.csv',sep=',') print('KA商户数据处理:') data_at='data\\' for files in os.walk(path+data_at): for i in files[2]: print('处理数据:'+i) df=pd.read_csv(path+data_at+i,sep='\t',encoding = 'utf-16-le') df.rename(columns={'明细店铺':'商户','供应商编码':'商户','成交净额':'付款金额','周期趋势':'频道标识'}, inplace=True) df['频道标识']=[str(i) for i in df['频道标识']] df['频道标识'].replace(to_replace={'6':'大聚惠','239':'掌上抢','240':'掌上抢','周期趋势 ':'整体'},inplace=True) df['商户']=[int(str(j)[0:8]) for j in df['商户']] df['日期']=[parse(i[0:8])]*len(df['商户']) df=df[['付款金额']].groupby([df['日期'],df['商户'],df['频道标识']]).sum() df=df.reset_index() if count==0: df_nm=dfa else: df_nm=pd.concat([df,df_nm]) count+=1 df_nm=pd.merge(df_nm,ka,right_on='商户编码',left_on='商户',how='right') df_nm=df_nm[df_nm['商户']>0] df_nm.to_csv(path+time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime(time.time()))+'KA销售.csv') print('处理完成!')
如上代码运行后生成的EXCEL表格中文出现乱码,请问大神是什么回事?之前可以玩么运行的,但是换了一个电脑之后运行生成的EXCEL就出乱码了。
你的程序第一句是`# -*- coding: utf-8 -*-`吗
程序第一句没有给定,这个程序之前是可以正常运行的,后来就不能正常运行了,之前在首行也没有写# -*- coding: utf-8 -*-。
coding:utf-8
不懂啊大神,我是小白
在首行加#-*- coding:UTF-8 -*-
每一条输出语句改成类似 print "KA商户数据处理:".decode('utf-8').encode('cp936')
如果运行环境是eclipse+pydev,就正常的print就好了
we你在与之前可以完美运行并且无乱码的,现在换了电脑之后就有乱码了,是不是系统环境变量的为题?或者默认编码的问题?
@佛系程序员: win系统默认的cp936,你看你原来的也是win吗,还是linux,或者是开发环境不一样,eclipse,ipython,dos运行可能都会有点差别,具体你自己看看吧。环境变量我觉得关系应该不大吧
@赵zzz: 我以前用的是台式机,WIN7系统,用的PYTHON自带的IDLE运行的,可以完美运行无乱码,现在换成了笔记本,也是WIN7的,就运行不了了,还是PYTHON自带的IDLE。