Python: сохранить значение в переменной, чтобы вы могли распознать каждую повторную повторяемость

Если этот вопрос неясен, я очень открыт для конструктивной критики.

У меня есть таблица excel с примерно 50 строками данных, причем первый столбец в каждой строке является датой. Мне нужно получить доступ ко всем данным только за одну дату, и эта дата появляется только примерно 1-5 раз. Это самая последняя дата, поэтому я уже организовал таблицу по дате с последним, находящимся наверху.

Поэтому моя цель – сохранить эту дату в переменной, а затем Python посмотреть только на эту переменную (эту дату) и взять только столбцы, соответствующие этой переменной. Мне нужно использовать этот код в 100 других файлах excel, поэтому ему потребуется произвольно взять самую последнюю дату (всегда наверху, хотя).

Мой текущий код ниже просто берет первые 5 строк, потому что я знаю, сколько раз эта дата происходит.

import os from numpy import genfromtxt import pandas as pd path = 'Z:\\folderwithcsvfile' for filename in os.listdir(path): file_path = os.path.join(path, filename) if os.path.isfile(file_path): broken_df = pd.read_csv(file_path) df3 = broken_df['DATE'] df4 = broken_df['TRADE ID'] df5 = broken_df['AVAILABLE STOCK'] df6 = broken_df['AMOUNT'] df7 = broken_df['SALE PRICE'] print (df3) #print (df3.head(6)) print (df4.head(6)) print (df5.head(6)) print (df6.head(6)) print (df7.head(6)) 

Это относительно простая операция фильтрации. Вы заявляете, что хотите «взять только столбцы», которые являются последней датой, поэтому я предполагаю, что приемлемым результатом будет фильтр DataFrame с правильными столбцами.

Вот простой CSV, который похож на вашу структуру:

 DATE,TRADE ID,AVAILABLE STOCK 10/11/2016,123,123 10/11/2016,123,123 10/10/2016,123,123 10/9/2016,123,123 10/11/2016,123,123 

Обратите внимание, что я немного перепутал даты, потому что это хакки и склонны к ошибкам просто предположить, что последние даты будут на вершине. Следующий скрипт будет соответствующим образом фильтровать его:

 import pandas as pd import numpy as np df = pd.read_csv('data.csv') # convert the DATE column to datetimes df['DATE'] = pd.to_datetime(df['DATE']) # find the latest datetime latest_date = df['DATE'].max() # use index filtering to only choose the columns that equal the latest date latest_rows = df[df['DATE'] == latest_date] print (latest_rows) # now you can perform your operations on latest_rows 

В моем примере это напечатает:

  DATE TRADE ID AVAILABLE STOCK 0 2016-10-11 123 123 1 2016-10-11 123 123 4 2016-10-11 123 123