首先附上可以正常输出中文的完整代码。汉字乱码输出的解决方法是pd.read_csv函数要多携带一个参数encoding='gbk',指明编码方式。

import pandas as pd
import os
import jieba.analyse


pinglun = " "  # 全部评论内容组合

__all__ = []

for filename in os.listdir(os.path.dirname(__file__)):#遍历全部文件
    if filename.endswith("csv"):#选出csv
        # print(filename) 此处输出的是文件名
        file = pd.read_csv(filename, encoding='gbk')#打开csv文件,并指明编码方式为gbk
        for index, row in file.iterrows():
            x = row['content']#content为一列的列名
            pinglun = pinglun + str(x)

print(pinglun)  # 所有评论拼在一起
keywords = jieba.analyse.extract_tags(pinglun, topK=5, withWeight=False, allowPOS=())
for keywords, weight in jieba.analyse.extract_tags(pinglun, withWeight=True):
    print('%s %s' % (keywords, weight))

        使用pandas包自带的方法遍历本级目录下的全部csv文件并输出文件中的内容并进行词频分析,输出结果中的中文却出现乱码的现象。

         这是因为在csv文件中,使用的是GB-2312汉字编码,Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,只能输出乱码。

         只需要注意一处代码的使用,即可避免这个问题。即pd.read_csv函数要多携带一个参数,指明编码方式,即可输出正常汉字。

file = pd.read_csv(filename, encoding='gbk')

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐