我有一个daiy.csv文件,每天更新。脚本从中获取值,检查某些值,然后根据这些检查打印出一些信息。我的问题是,每周几乎一次,daily.csv中的列数增加或减少。然后我必须找到我想要的值的新列号。我想知道是否有一种方法可以在我的if检查中使用标头值,所以无论列数如何变化,我仍然可以运行我的脚本。
with open('daily.csv','rb')as f:
reader=csv.reader(f)
#next(reader, None) #Skipping the header
for row in reader:
#if row[3]=='M2' and (float(row[38]) > 60):
try:
if (row[3]=='M2' or row[3]=='M4' or row[3]=='M3') and (float(row[37]) > 60):
print row[1] + "/" + row[2] + "/" + row[3] + " : " + row[37]
if (row[3]=='M2' or row[3]=='M4' or row[3]=='M3') and (float(row[37]) < 70):
print row[1] + "/" + row[2] + "/" + row[3] + " : " + row[37]
except:
pass
答案 0 :(得分:0)
这似乎是pandas(http://pandas.pydata.org/)可以轻松帮助您解决的问题。假设您的所有列都具有唯一标头,您只需提取您关注的相关列即可。我们假设您的列名是&#39; A&#39;&#39; B&#39;和&#39; C&#39;而且你不想分析专栏&#39; B&#39;
import pandas as pd
df = pd.read_csv('daily.csv')
columns_to_analyze = ['A', 'C']
df = df[columns_to_analyze]
如果不了解“daily.csv&#39;格式化我尽可能自信地说...