在CSV文件中匹配日期以获取索引

时间:2018-04-11 02:45:04

标签: python for-loop

我有一个包含日期,时间,正数和负数列的CSV文件。有重复的日期,如第4行和第5行,具有不同的正值和负值。我想将用户输入日期与csv文件中的日期相匹配,并返回日期索引,以便我获得不同的正值和负值。

但是,我尝试了循环,但它总是返回日期的第一个索引。

The CSV file look like this:
Date      Pos Neg
20180402   1   0
20180402   0   1
20180401   0   1
20180402   1   0

for i in range(len(combine_list)): 
xdate = combine_list[i][0]
print(xdate)
if user_date3 ==xdate:
    print("yes")
    count_price +=1
    index1 = date_list.index(xdate)
    print(index1)
    #index1.append(index1)

很抱歉,如果代码乱糟糟的话,我刚开始学习如何编码。任何帮助表示赞赏。谢谢! :)

2 个答案:

答案 0 :(得分:1)

A for loop will iterate over items in a sequence。如果需要引用序列中每个项目的索引,请使用enumerate()

假设combine_list是列表清单:

combine_list = [['20180402',1,0],
                ['20180402',0,1],
                ['20180401',0,1],
                ['20180402',1,0]]

for i, line in enumerate(combine_list): 
    xdate = line[0]
    print(xdate)
    if user_date3 == xdate:
        print("yes")
        count_price +=1
        index1 = i
        print(index1)
        #index1.append(index1)

答案 1 :(得分:0)

我假设您已将.csv文件导入为表多维数组。

table = [['Date', 'Pos', 'Neg'],
         [20180402, 1, 0],
         [20180402, 0, 1],
         [20180401, 0, 1],
         [20180402, 1, 0]]

def filter_data(table, date):
    filtered_data = [table[0]]
    for row in table[1:]:
        if row[0] == date:
            filtered_data.append(row)
    return filtered_data

print filter_data(table, 20180402)