用python解决excel文件读写

Excel文件读写:读取所给“sy06-03.txt”文档中的数据,处理成绩中存在的异常(将非整数的数据,替换为“数据异常”,例如“10u”是异常数据,替换为“数据异常”),最后将成绩写入Excel文档中,结果图如下图。【参考代码行数:43行】
提示:写Excel文件可使用openpyxl扩展包,或者将文件保存为*.csv格式,也可以用Excel打开。

“sy06-03.txt”文件内容:
学生姓名,语文成绩,数学成绩
张三,80,sx
李四,zz,100
王五,99,88
钱六,100,10u

预期结果:

img

望采纳,代码如下:

#coding:utf-8
import pandas as pd

df = pd.read_csv('./sy06-03.txt',encoding='gbk',sep=',')
print(df)
df['语文成绩'] = pd.to_numeric(df['语文成绩'], errors='coerce').fillna('数据异常')
df['数学成绩'] = pd.to_numeric(df['数学成绩'], errors='coerce').fillna('数据异常')
df.to_csv('./change.csv',index=0)

代码如下:


import pandas as pd

df = pd.read_csv(r'C:\sy06-03.txt')
print(df)

df['语文成绩'] = df['语文成绩'].apply(lambda x: x if str(x).isdigit() else '数据异常')
df['数学成绩'] = df['数学成绩'].apply(lambda x: x if str(x).isdigit() else '数据异常')

print(df)
df.to_excel(r'C:\result.xlsx', index=False)

# 打印结果
"""
  学生姓名 语文成绩 数学成绩
0   张三   80   sx
1   李四   zz  100
2   王五   99   88
3   钱六  100  10u
  学生姓名  语文成绩  数学成绩
0   张三    80  数据异常
1   李四  数据异常   100
2   王五    99    88
3   钱六   100  数据异常
"""


使用csv模块简单处理。
效果:

img

代码如下:

import csv

def readAndSaveCsv(path, output_name):
    with open(path, "r", encoding='utf-8') as f, open(output_name, 'w', newline='', encoding='utf-8') as csv_file:
        # 读取表头
        writer = csv.writer(csv_file)
        arr=f.readline().split(',')
        for i in range(1, len(arr)):
            arr[i] = arr[i].strip()
        writer.writerow(arr)
        # 读取第一行数据
        data = f.readline()
        while data:
            # 处理数据
            arr = data.split(',')
            # 判断是否为数字 isdigit ()
            for i in range(1, len(arr)):
                arr[i]=arr[i].strip()
                if not arr[i].isdigit():
                    arr[i] = '数据异常'
            writer.writerow(arr)
            data = f.readline()


if __name__ == '__main__':
    path = r"test.txt"
    output_name = r"test.csv"
    readAndSaveCsv(path, output_name)