Python代码读取Excel酒店评论并写入TXT文件:解决评论写入单行问题
Python代码读取Excel酒店评论并写入TXT文件:解决评论写入单行问题/n/n本文将讲解如何使用Python代码读取包含酒店评论的Excel文件,并将每个酒店的'好的方面'和'差的方面'评论分别写入独立的TXT文件中。/n/n问题描述:/n/n假设您有一个Excel文件,包含多家酒店的客户评论数据,每家酒店的评论内容占据多行,不同酒店之间空一行。您希望将每个酒店的'好的方面'和'差的方面'评论分别写入独立的TXT文件中,文件名以酒店名称命名。然而,您发现执行代码后,每个文本文件只包含一行评论,其余评论内容丢失。/n/n代码分析:/n/n出现这种情况的原因是,原始代码在遍历每一行时,每次遇到'好的方面'或'差的方面'都会重新打开TXT文件并写入当前行的内容,导致之前的评论被覆盖。/n/n解决方案:/n/n为了解决这个问题,我们可以修改代码,将每个酒店的所有'好的方面'和'差的方面'评论累积到变量中,并在遍历到该酒店的最后一行时再将累积的评论写入TXT文件。/n/n修改后的代码:/n/npython/nimport pandas as pd/nimport re /nimport os/n/n# 读取Excel文件/ndf= pd.read_excel(r'C://Users//yuxin//Desktop//booking成都所有三&四星级酒店评分和评价.xlsx', sheet_name='90家四星级评价')/n/n# 创建存储文本文件的文件夹/nif not os.path.exists(r'G://python//booking情感分析//hotels_comments_txt'):/n os.mkdir(r'G://python//booking情感分析//hotels_comments_txt')/n/n# 遍历每一行/nhotel_name = ''/ngood_comments = ''/nbad_comments = ''/nfor index, row in df.iterrows():/n if pd.notnull(row['酒店名称']): # 如果该行有酒店名称/n if hotel_name:/n # 如果之前有遍历到过酒店名称,则将之前累积的好的方面和差的方面写入对应txt文件/n with open(f'G://python//booking情感分析//hotels_comments_txt//{hotel_name}.txt', 'w', encoding='utf-8') as f:/n f.write(good_comments + '//n')/n f.write(bad_comments + '//n')/n # 重置当前酒店名称和评论/n hotel_name = re.sub('[^/w]', '', row['酒店名称'])/n good_comments = ''/n bad_comments = ''/n if pd.notnull(row['好的方面']): # 如果该行有好的方面/n # 将好的方面累加到当前酒店的好的方面评论中/n good_comments += row['好的方面'] + ' '/n if pd.notnull(row['差的方面']): # 如果该行有差的方面/n # 将差的方面累加到当前酒店的差的方面评论中/n bad_comments += row['差的方面'] + ' '/n/n# 写入最后一个酒店的评论/nif hotel_name:/n with open(f'G://python//booking情感分析//hotels_comments_txt//{hotel_name}.txt', 'w', encoding='utf-8') as f:/n f.write(good_comments + '//n')/n f.write(bad_comments + '//n')/n/n/n代码解释:/n/n1. 读取Excel文件: 使用pandas库读取Excel文件并指定目标sheet。/n2. 创建文件夹: 创建一个名为'hotels_comments_txt'的文件夹,用于存储生成的TXT文件。/n3. 遍历每一行: 使用循环遍历每一行数据。/n4. 识别酒店名称: 遇到非空酒店名称时,判断是否之前已经存在酒店名称。如果存在,则将之前累积的评论写入对应的TXT文件。/n5. 累积评论内容: 遇到'好的方面'或'差的方面'时,将内容累加到对应的变量中。/n6. 写入TXT文件: 遍历完当前酒店的所有评论后,将累积的'好的方面'和'差的方面'评论写入对应的TXT文件中。/n7. 写入最后一个酒店的评论: 循环结束后,检查是否还有未写入的酒店评论,并将它们写入对应的TXT文件中。/n/n总结:/n/n通过修改代码,将每个酒店的评论累积到变量中,并在遍历完该酒店的所有评论后写入TXT文件,可以有效地解决评论写入单行的问题。/n/n希望这篇内容能够帮助您解决问题,并为您的数据分析工作提供帮助!/n
原文地址: https://www.cveoy.top/t/topic/ooNF 著作权归作者所有。请勿转载和采集!