Примените ту же функцию к каждой записи столбца в Pandas кадре данных - PullRequest
0 голосов
/ 09 мая 2020

У меня есть набор данных со столбцом даты и времени с заданным форматом c. Мне нужно создать новые функции из этого столбца, что означает, что мне нужно добавить новые столбцы в фрейм данных, извлекая информацию из вышеупомянутого столбца даты и времени. Мой пример столбца входных данных выглядит как показано ниже.

id    datetime         feature2
1    12/3/2020 0:56       1
2    11/25/2020 13:26     0

Ожидаемый результат:

id    date      hour    mints    feature2
1    12/3/2020   0       56         1
2    11/25/2020  13      26         0

Pandas Метод apply () может не работать для этого, поскольку добавляются новые столбцы. Как лучше всего это сделать?

Есть ли способ применить одну функцию к каждой записи столбца, чтобы сделать это, применив ее ко всему столбцу?

Ответы [ 2 ]

3 голосов
/ 09 мая 2020

pandas series .dt accessor

  • Ваши данные datetime поступают из pandas столбца (серии), поэтому используйте .dt accessor
import pandas as pd

df = pd.DataFrame({'id': [1, 2],
                   'datetime': ['12/3/2020 0:56', '11/25/2020 13:26'],
                   'feature2': [1, 0]})
df['datetime'] = pd.to_datetime(df['datetime'])

 id            datetime  feature2
  1 2020-12-03 00:56:00         1
  2 2020-11-25 13:26:00         0

# create columns
df['hour'] = df['datetime'].dt.hour
df['min'] = df['datetime'].dt.minute
df['date'] = df['datetime'].dt.date

# final
 id            datetime  feature2  hour  min        date
  1 2020-12-03 00:56:00         1     0   56  2020-12-03
  2 2020-11-25 13:26:00         0    13   26  2020-11-25
1 голос
/ 09 мая 2020

ОИТН

df.date=pd.to_datetime(df.date)
df.set_index(df.date, inplace=True)
df['hour']=df.index.hour
df['mints']=df.index.minute
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...