我正在编写一个函数的一部分来帮助清理文件中的数据。我正在有效地清除所有记录的温度,然后转换成摄氏度,再转换成浮子。我的代码似乎没问题。然而,当我去尝试寻找一个字符,如'C',然后它会继续说,每个字符串都有它。
一个很好的例子是,当我按原样运行时,每次都返回0.0,因为它将所有内容都识别为“NA”。我试着删除所有的代码,只想找到“C”,同样的事情发生了。
我没有在任何其他模块中遇到过这个问题,在那里我做了基本相同的事情。有人知道为什么会这样吗?你知道吗 这是我的.tsv文件的前几行数据的样子:
![First few lines_image](https://i.stack.imgur.com/kEPlr.png)
for l in y.readlines():
make_list = l.split()
if make_list[7] == 'NA' or make_list[7] == 'N/A' or\
make_list[7] == 'N-A-' or make_list[7] == 'N-A'\
or make_list[7] == 'NONAPPLICABLE'\
or make_list[7] == 'NON.APPLICABLE' or 'NON-APPLICABLE':
make_list[7] = '0'
if ',' in make_list[7]:
make_list[7] = make_list[7].replace(',', '.')
if '-' in make_list[7]:
make_list[7] = make_list[7].replace('-', '')
if '°' in make_list[7]:
make_list[7] = make_list[7].replace('°', '')
if 'C' not in make_list[7] or 'F' not in make_list[7]\
or '0' not in make_list[7]:
if float(make_list[7]) > 45:
make_list[7] = round((float(make_list[7])-32)*(5/9), 2)
make_list[7] = str(make_list[7])
if 'C' in make_list[7]:
make_list[7] = make_list[7].replace('C', '')
if 'F' in make_list[7]:
make_list[7] = make_list[7].replace('F', '')
make_list[7] = round((float(make_list[7])-32)*(5/9), 2)
make_list[7] = round(float(make_list[7]), 2)
print(make_list[7])
|