и я пытаюсь преобразовать cols
, который представляет собой список всех столбцов от 0 до 188 ( cols = list(hdata.columns[ range(0,188) ]) )
, которые находятся в этом формате yyyy-mm
, в datetimeIndex. Есть и другие несколько столбцов, которые являются строковыми именами и поэтому не могут быть преобразованы в dateTime, поэтому я попытался сделать это,
hdata[cols].columns = pd.to_datetime(hdata[cols].columns) #convert columns to **datetimeindex**
Но это не работает. Не могли бы вы понять, что здесь не так?
Изменить: лучший способ работать с этим типом данных - использовать метод Разделить-Применить-Объединить.
Шаг 1. Разделите данные, которые вы хотите выполнить, для определенной операции.
nonReqdf = hdata.iloc[:,188:].sort_index()
reqdf= reqdf.drop(['CountyName','Metro','RegionID','SizeRank'],axis=1)
Шаг 2: выполните операции. В моем случае он преобразовывал столбцы фрейма данных с годом и месяцами в datetimeIndex. И повторно дискретизируйте его ежеквартально.
reqdf.columns = pd.to_datetime(reqdf.columns)
reqdf = reqdf.resample('Q',axis=1).mean()
reqdf = reqdf.rename(columns=lambda x: str(x.to_period('Q')).lower()).sort_index() # renaming so that string is yyyy**q**<1/2/3/4> like 2012q1 or 2012q2 likewise
Шаг 3. Объедините два разделенных фрейма данных (можно использовать _ 7_, но это может зависеть от ваших требований)
reqdf = pd.concat([reqdf,nonReqdf],axis=1)