Фрейм данных получает дату индекса из значения

#python #pandas #dataframe

Вопрос:

У меня есть df

введите описание изображения здесь

и в итерации с инструкцией печати,

 print(df.iloc[i])
 

Я получаю ценность как

введите описание изображения здесь

Но как получить значение индекса, которое является датой из df.iloc[i]?

Комментарии:

1. Можете ли вы более четко сказать, что вы хотите вернуть? Вы хотите вернуть только значение столбца даты вместо всей строки? Индекс строки по умолчанию начинается с 0 и увеличивается на единицу сверху вниз.

2. df.iloc[i].имя печатается 2021-02-10 00:00:00, но мне нужно только 2021-02-10

3. хорошо, я думаю, что знаю, что происходит, я написал ответ ниже, посмотрим, сработает ли это.

Ответ №1:

df.iloc[i].name должен дать вам индекс для этой конкретной строки.

Комментарии:

1. df.iloc[i].имя печатается 2021-02-10 00:00:00. Как получить только дату

2. Ты имеешь в виду df.loc['20-04-28'] ?

3. @wwnde: df.iloc[i].имя печатается 2021-02-10 00:00:00, но мне нужно только 2021-02-10

4. предполагая, что ваш фрейм данных-df, каков тип данных столбца даты? выполнить печать(df.dtypes)

5. df.index=df.index.astype(str) и затем df.iloc[i].name Вы возвращаете дату и время, потому что индексируете как таковые. Пожалуйста, преобразуйте в строку

Ответ №2:

Мы должны сбросить индекс, так как не можем выполнить преобразования в индексе afaik.

Новый столбец даты выглядит как объект datetime, поэтому мы должны импортировать его.

Приведенный ниже код создаст новый столбец, в котором в новом столбце будет указан только год-месяц-день. Вы всегда можете удалить столбец «Старая дата» позже.

 import datetime as dt
df.reset_index()
df['Y-M-D-Only'] = df['Date'].dt.date
for i in df['Y-M-D-Only']:
    print(i)