首先附上可以正常输出中文的完整代码。汉字乱码输出的解决方法是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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐