#python #datetime
#python #datetime
Вопрос:
У меня есть фрейм даты, содержащий почасовые данные за 15 лет. Теперь я хотел бы уменьшить эти данные, чтобы сохранить только дневное время с 6 утра до 8 вечера и избавиться от всех остальных строк. Каков наилучший подход для этого?
Это то, что я пробовал до сих пор:
print(df['date_time'].dtype)
df_only_daytime = df.drop(df[[df['date_time'].hour < 6]], axis=0)
Результат:
datetime64[ns]
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-61-a4e1fe6a71b4> in <module>
1 print(df['date_time'].dtype)
----> 2 df_only_daytime = df.drop(df[[df['date_time'].hour < 6]], axis=0)
~anaconda3libsite-packagespandascoregeneric.py in __getattr__(self, name)
5272 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5273 return self[name]
-> 5274 return object.__getattribute__(self, name)
5275
5276 def __setattr__(self, name: str, value) -> None:
AttributeError: 'Series' object has no attribute 'hour'
Спасибо за вашу помощь!
Ответ №1:
Привет, вы можете взглянуть на этот пример:
df.loc[(df['date_time'].dt.hour >= 6) amp; (df['date_time'].dt.hour <= 8)] # Add dt in front to get the hour
Комментарии:
1. Спасибо, это помогло! Есть ли способ, чтобы текущая дата не добавлялась, когда я использую dt.hour?
2. Я не понимаю, что вы имеете в виду, не добавляя текущую дату?
3. Извините, я запутался с чем-то еще, что я сделал ранее. Все хорошо! Спасибо за вашу помощь!