У меня есть набор данных. Я анализирую в пандах, где все данные бинают ежемесячно. Данные берутся из базы данных MySQL, где все даты находятся в формате «YYYY-MM-01», так что, например, все строки в октябре 2013 года будут иметь «2013-10-01» в столбце месяца.Обработка ежемесячных данных в pandas
Я в настоящее время чтения данных в панд (через .tsv дамп таблицы MySQL) с
data = pd.read_table(filename,header=None,names=('uid','iid','artist','tag','date'),index_col=indexes, parse_dates='date')
Это все хорошо, за исключением того, что любые последующие анализы я бегу, в котором, кроме меня ежемесячная передискретизация всегда представляет даты с использованием соглашения конца месяца (т.е. данные с октября становятся «2013-10-31» вместо «2013-10-01»), но это может привести к несогласованности, когда исходные данные имеют месяцы помечены как «YYYY-MM-01», в то время как любые данные с повторной выборкой будут иметь месяцы, обозначенные как «YYYY-MM-31» (или «-30» или «-28», если это необходимо).
Мой вопрос это: Самый простой и/или самый быстрый способ Я могу преобразовать все даты в моем фрейме данных в формат конца месяца с самого начала? Имейте в виду, что дата является одним из нескольких индексов в мультииндексе, а не в столбце. Я считаю, что лучше всего использовать модифицированный date_parser в моем вызове pd.read_table, который всегда конвертирует месяц в соглашение конца месяца, но я не уверен, как подойти к нему.
Возможно, это полезно, но эта лань sn't сказать, как применить преобразование к индексу даты ... – moustachio
@moustachio использовать пользовательский date_parser. – Curry
Отлично! Спасибо за расширение объяснения, это прекрасно работает. Мой комментарий был в вашей первой версии ответа. – moustachio