Python csv,如果使用标头检查

时间:2015-08-07 23:19:17

标签: python csv header

我有一个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

1 个答案:

答案 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;格式化我尽可能自信地说...