#python-3.x #pandas
#python-3.x #pandas
Вопрос:
Я пытаюсь извлечь данные из файла Excel (.xls), и я решил использовать Pandas в качестве библиотеки, потому что это разрешено на моем корпоративном компьютере.
Большая часть информации, с которой я сталкиваюсь, описывающей Pandas, ориентирована на использование Jupyter или экосистемы Anaconda, и у меня возникают проблемы с тем, как перевести это в традиционный скрипт python.
Это пример таблицы, с которой я тестирую:
Date a b c
1 1-Jan-19 100 200 300
2 1-Feb-19 101 201 301
3 1-Mar-19 102 202 302
4 1-Apr-19 103 203 303
5 1-May-19 104 204 304
6 1-Jun-19 105 205 305
7 1-Jul-19 106 206 306
8 1-Jul-19 107 207 307
9 1-Aug-19 108 208 308
10 1-Sep-19 109 209 309
Моя цель — взять строку с максимальной датой, которая будет сегодняшней, и оценить всю информацию в этой строке как словарь или JSON, например
{
Date: 1-Sep-19,
a: 109,
b: 209,
c: 309
}
(Меня не волнует столбец индекса)
Я застрял в попытке оценить последнюю строку. Это то, что у меня есть до сих пор:
import pandas as pd
xls = pd.ExcelFile(r'C:PathExcel Pandas Connector Test.xls')
df = pd.read_excel(xls, r'Sheet1')
today = df['Date'].max() # returns the max value in the date column
print(today)
Я нашел максимальную дату, но что мне нужно сделать, чтобы получить самые новые данные из этой таблицы, используя эту дату?
Ответ №1:
Просто сделайте
df[df.Date == date.Date.max()].to_dict(orient='records')[0]
Это просто выбирает строки вашего фрейма данных с максимальным значением в Date
столбце, а затем преобразует результат в список dicts, по одному для каждой такой строки.
Исходя из вашего вопроса, я предполагаю, что у вас есть только одна запись с самой последней датой, поэтому все должно быть в порядке, выбрав первую запись в списке. Просто будьте осторожны с повторяющимися датами, так как при этом будет выбрана первая, которая появляется в dataframe.
Надеюсь, это поможет
Комментарии:
1. Вы имели в виду: df[df. Date == df[‘Date’].max()].to_dict(orient=’records’)[0]
2. Спасибо, я внес изменения, которые я прокомментировал выше, и поместил их в переменную, чтобы распечатать, ваше предложение — это именно то, что мне нужно, и оно более краткое, чем тот путь, который я выбрал.
3.
df.Date
иdf['Date']
два эквивалентных способа выбора столбца.4. Ok. df.Date вызвал исключения в моей установке Windows.