python - 如何为空单元格 csv 文件返回 none 或 0
问题描述
我已经查看了该网站的方法来做到这一点,但没有成功。
所以我一起遍历两个 csv 文件,当我到达一个空字符串/单元格时,它给了我错误:ValueError: invalid literal for int() with base 10: ''
我明白这意味着什么,但这是我尝试过的。
def normalise(students_file, units_list):
file1 = open(students_file, 'r')
data1 = file1.readline().splitlines()
file2 = open(units_list, 'r')
data2 = file2.read().splitlines()
for line in data1:
line = line.split(",")
for row in data2:
row = row.split(",")
for n in range(1, len(row), 2):
for i in range(1, len(line), 1):
if i == '':
pass
else:
print(int(line[i]) / int(row[n]))
我知道这段代码有效,因为第一个增量的输出是 0.6,这是我想要的,但是第二个增量试图分割一个空字符串,并且由于 int() 无法转换一个空字符串,它运行一个错误。
任何解决方案将不胜感激。
解决方案
for i in range(1, len(line), 1):
if i == '':
那if
永远不可能,True
因为i
它将是一个整数。你大概是说if line[i] == '':
?
另一种方法是使用try
块:
try:
print(int(line[i]) / int(row[n]))
except:
# do whatever you need to do when cell is empty
# or whatever other error occurs, for example division by 0...
推荐阅读
- python - Django 对过去 10 周内每周的值求和
- opencv - 使用内部和外部相机参数进行图像匹配
- flutter - How to change language of system clipboard text (Copy, Paste etc.,) to Chinese in Flutter?
- sql-server - 有没有办法回滚事务中的特定保存点?
- python - 美丽的汤从 Id 中获取文本
- reactjs - 反应纯组件
- browser - 何时应该使用 HTTP 标头“X-Content-Type-Options: nosniff”
- javascript - 用布尔值更改文本和颜色按钮
- angular - 在 ngif 中使用 ngfor 的元素
- jquery - 单击时对表中的值求和