У меня есть несколько столбцов, где некоторые значения - DateTime, а некоторые - просто год. Я хотел бы индексировать значения datetime так, что если I = I[:4]
, я получаю год для переменной I после цикла через столбец вместо ошибки, указывающей 'datetime.datetime' object is not subscriptable
. По сути, я хотел бы оставить все, начиная с datetime, а не на год в столбце со смешанными ints, которые имеют значения, которые являются только годом, и экземпляры datetime, из которых мне бы хотелось только получить год.Как индексировать DateTime в Pandas dataframe
0
A
ответ
0
Я не совсем уверен, что вы пытаетесь сделать, и, к сожалению, я не могу оставлять комментарии (пока).
Из чего я думаю, у вас есть DataFrame со столбцом смешанных типов, и вы хотите преобразовать все значения с типом datetime
в int
. В качестве примера, вот DataFrame:
>>> data = [[1, 1990], [2, datetime(1991, 1, 1)]]
>>> df = pd.DataFrame(data, columns=['id', 'time'])
>>> df
id time
0 1 1990
1 2 1991-01-01 00:00:00
Вы можете использовать map
(link) для преобразования второго столбца:
>>> df.loc[:,'date'] = df.loc[:,'date'].map(lambda x: x.year if isinstance(x, datetime) else x)
>>> df
id time
0 1 1990
1 2 1991
Спасибо! Это именно то, что я искал. – Min