【将excel转换为csv时乱码的代码修改以及文本内容中时间戳的去除】

将excel转换为csv时乱码的代码修改以及时间戳的去除

表格内容原始长这样
原始表格说明

用下述代码将表格转换为csv时,直接用pandas转换,一直乱码,很奇怪

# coding:utf-8
import pandas as pd

# 读取Excel文件
df = pd.read_excel("C:/Users/19024/Desktop/excel1.xlsx")

# 将DataFrame保存为UTF-8编码的CSV文件
df.to_csv("C:/Users/19024/Desktop/csv1.csv", index=False, encoding='utf-8')

输出的csv数据也是乱码的
乱码图片

因此,换一种转换方式,成功了

# coding:utf-8
import pandas as pd

# 读取Excel文件,这里使用'openpyxl'引擎来处理xlsx文件
df = pd.read_excel("C:/Users/19024/Desktop/主动学习数据处理过程/final5471.xlsx", engine='openpyxl')

# 尝试将所有列转换为字符串类型,以确保在写入CSV时不会出现编码问题
df = df.applymap(str)

# 将DataFrame保存为UTF-8编码的CSV文件
# 使用'utf-8-sig'编码以支持BOM,有助于某些程序正确识别编码
csv_file_path = "C:/Users/19024/Desktop/主动学习数据处理过程/weihebing5471.csv"
df.to_csv(csv_file_path, index=False, encoding='utf-8-sig')

# 打印出转换后的CSV文件路径
print(f"CSV file has been saved to: {csv_file_path}")

另外,去除评论中的时间戳和匹配数量的代码如下:

import pandas as pd
import re
# 读取Excel文件
df = pd.read_excel("C:/Users/19024/Desktop/time.xlsx", engine='openpyxl')
# 定义一个函数,用于检查comment_count和pinglun是否匹配
# 如果不匹配或任一列为空,则返回False
def is_valid_row(row):
    return row['comment_count'] == row['pinglun'] and not pd.isnull(row['comment_count']) and not pd.isnull(row['pinglun'])
# 定义一个正则表达式来匹配单独的日期或与地点相连的日期
# 这个表达式会匹配形如"MM-DD"或"MM-DD地点"的模式
date_pattern = re.compile(r'\b(\d{2}-\d{2})([\u4e00-\u9fa5\s]*)')
# 定义一个函数,用于移除comment列中的时间戳
def remove_timestamps(text):
    if pd.isnull(text):
        return text
    # 使用正则表达式替换掉时间戳及其后的可选地点
    return date_pattern.sub('\2', text).strip()

# 应用函数,移除时间戳
df['comment'] = df['comment'].apply(remove_timestamps)
# 过滤掉comment_count和pinglun不匹配的行
df = df[df.apply(is_valid_row, axis=1)]
# 将清洗后的DataFrame保存为新的CSV文件
df.to_csv("C:/Users/19024/Desktop/notime.csv", index=False, encoding='utf-8-sig')
# 打印结果查看
print(df.head())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值