首页 新闻 会员 周边

求助,python中文乱码

0
悬赏园豆:10 [已关闭问题] 关闭于 2018-01-16 17:51
 
复制代码
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就出乱码了。

佛系程序员的主页 佛系程序员 | 初学一级 | 园豆:192
提问于:2018-01-10 19:44
< >
分享
所有回答(3)
0

你的程序第一句是`# -*- coding: utf-8 -*-`吗

Jneeee | 园豆:230 (菜鸟二级) | 2018-01-11 08:31

程序第一句没有给定,这个程序之前是可以正常运行的,后来就不能正常运行了,之前在首行也没有写# -*- coding: utf-8 -*-。

支持(0) 反对(0) 佛系程序员 | 园豆:192 (初学一级) | 2018-01-11 11:12
0

coding:utf-8

ycyzharry | 园豆:25653 (高人七级) | 2018-01-11 09:41

不懂啊大神,我是小白

支持(0) 反对(0) 佛系程序员 | 园豆:192 (初学一级) | 2018-01-11 11:13
0

在首行加#-*- coding:UTF-8 -*-

每一条输出语句改成类似 print "KA商户数据处理:".decode('utf-8').encode('cp936')

如果运行环境是eclipse+pydev,就正常的print就好了

赵zzz | 园豆:206 (菜鸟二级) | 2018-01-11 18:36

we你在与之前可以完美运行并且无乱码的,现在换了电脑之后就有乱码了,是不是系统环境变量的为题?或者默认编码的问题?

支持(0) 反对(0) 佛系程序员 | 园豆:192 (初学一级) | 2018-01-12 14:26

@佛系程序员: win系统默认的cp936,你看你原来的也是win吗,还是linux,或者是开发环境不一样,eclipse,ipython,dos运行可能都会有点差别,具体你自己看看吧。环境变量我觉得关系应该不大吧

支持(0) 反对(0) 赵zzz | 园豆:206 (菜鸟二级) | 2018-01-12 14:36

@赵zzz: 我以前用的是台式机,WIN7系统,用的PYTHON自带的IDLE运行的,可以完美运行无乱码,现在换成了笔记本,也是WIN7的,就运行不了了,还是PYTHON自带的IDLE。

支持(0) 反对(0) 佛系程序员 | 园豆:192 (初学一级) | 2018-01-16 11:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册