目录
- 题目
- 描述
- 输入格式
- 输出格式
- 数据集
- 示例 1
- 思路
- 代码
- 实现效果
- 总结
主要内容是校设课程的习题和课外学习的一些习题。
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
题目
描述
附件文件中存在一些缺失数据,请找出这些缺失值并用输入的字符串 s 来替换。
输入格式
输入一个字符串s
输出格式
处理结果以二维列表形式输出,元素为原文件的每一行切分成的列表
数据集
filldata.csv
,,20.76249006,0.000168044,,,18.9104994,0.08860522
,,20.77301274,0.000149807,,,18.92102208,0.086064377
,,20.78353541,0.00013318,,,18.93154475,0.083365648
,,20.79405809,0.000118071,,,18.94206743,0.080528602
,,20.80458076,0.000104387,,,18.9525901,0.077573307
,,20.81510343,9.20E-05,,,18.96311277,0.07452009
,,22.33036852,0,,,18.97363545,0.071389313
,,,,,,18.98415812,0.068201145
,,,,,,18.9946808,0.064975352
,,,,,,19.00520347,0.061731102
,,,,,,19.01572615,0.058486784
,,,,,,19.02624882,0.055259852
,,,,,,19.03677149,0.052066246
示例 1
输入:
a
输出:
[['a', 'a', '20.76249006', '0.000168044', 'a', 'a', '18.9104994', '0.08860522'], ...... ['a', 'a', 'a', 'a', 'a', 'a', '19.03677149', '0.052066246']]
(此处仅给出第一行和最后一行数据,供参考格式)
下面是我通过测试点的完整输出
[['a', 'a', '20.76249006', '0.000168044', 'a', 'a', '18.9104994', '0.08860522'], ['a', 'a', '20.77301274', '0.000149807', 'a', 'a', '18.92102208', '0.086064377'], ['a', 'a', '20.78353541', '0.00013318', 'a', 'a', '18.93154475', '0.083365648'], ['a', 'a', '20.79405809', '0.000118071', 'a', 'a', '18.94206743', '0.080528602'], ['a', 'a', '20.80458076', '0.000104387', 'a', 'a', '18.9525901', '0.077573307'], ['a', 'a', '20.81510343', '9.20E-05', 'a', 'a', '18.96311277', '0.07452009'], ['a', 'a', '22.33036852', '0', 'a', 'a', '18.97363545', '0.071389313'], ['a', 'a', 'a', 'a', 'a', 'a', '18.98415812', '0.068201145'], ['a', 'a', 'a', 'a', 'a', 'a', '18.9946808', '0.064975352'], ['a', 'a', 'a', 'a', 'a', 'a', '19.00520347', '0.061731102'], ['a', 'a', 'a', 'a', 'a', 'a', '19.01572615', '0.058486784'], ['a', 'a', 'a', 'a', 'a', 'a', '19.02624882', '0.055259852'], ['a', 'a', 'a', 'a', 'a', 'a', '19.03677149', '0.052066246']]
思路
先说,这oj属实是有问题,因为一旦使用了np和pd就会报错运行错误(也就是说题目限制不能用这两个库,但是题目里面还没有说,确实是恶心人,给大家排雷了,别想用上面两个库了。忍不住吐槽,这模块写出来不给人用,那写模块的意义是什么?)
朴实无华的实现空值替换(只有这种可以过测试点,下面两种答案对的,但是过不了判题系统)
使用循环遍历的方式实现
for i in range(len(lines)):
lines[i]=lines[i].split(",")
for j in range(len(lines[i])):
if lines[i][j]=="":
lines[i][j]=s
np实现实现空值替换
np.where把空值一次性都找出来并进行替换
data[np.where(data=='')] = s
pandas实现空值替换
替换得到的df数据,一步到位,简简单单
data=pandas.read_csv("filldata.csv").fillna(value=s).values
代码
朴实无华的实现空值替换
(只有这种可以过测试点,下面两种答案对的,但是过不了判题系统)
s=input()
with open('filldata.csv', 'r', encoding='utf-8') as f:
lines=f.read().split("\n")
for i in range(len(lines)):
lines[i]=lines[i].split(",")
for j in range(len(lines[i])):
if lines[i][j]=="":
lines[i][j]=s
print(lines)
np实现实现空值替换
import numpy as np
s=input()
with open("filldata.csv",encoding = 'utf-8') as f:
data = np.loadtxt(f,str,delimiter = ",")#str类型,不写str的话默认是float
data[np.where(data=='')] = s
mylist=[]
for i in data:
mylist.append(list(i))
print(mylist)
pandas实现空值替换
import pandas
s=input()
data=pandas.read_csv("filldata.csv").fillna(value=s).values
mylist=[]
for i in data:
mylist.append(list(i))
print(mylist)
实现效果
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python习题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-3-1
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
【更多内容敬请期待】