Excel文件读写:读取所给“sy06-03.txt”文档中的数据,处理成绩中存在的异常(将非整数的数据,替换为“数据异常”,例如“10u”是异常数据,替换为“数据异常”),最后将成绩写入Excel文档中,结果图如下图。【参考代码行数:43行】
提示:写Excel文件可使用openpyxl扩展包,或者将文件保存为*.csv格式,也可以用Excel打开。
“sy06-03.txt”文件内容:
学生姓名,语文成绩,数学成绩
张三,80,sx
李四,zz,100
王五,99,88
钱六,100,10u
预期结果:
望采纳,代码如下:
#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模块简单处理。
效果:
代码如下:
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)