#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)