Преобразование номера месяца в дату и время в пандах - PullRequest
0 голосов
/ 26 февраля 2019

Как преобразовать номер месяца (с плавающей запятой) в дату и время в пандах в формате, подобном 2010-01-01?

    date
0   1.0       
1   2.0       
2   3.0       
3   4.0       
4   5.0 

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

    date
0   2010-01-01       
1   2010-02-01      
2   2010-03-01      
3   2010-04-01       
4   2010-05-01

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Добавить год и месяц и преобразовать в дату и время

pd.to_datetime('2010-' + df.date.astype(int).astype(str) + '-1', format = '%Y-%m')

0   2010-01-01
1   2010-02-01
2   2010-03-01
3   2010-04-01
4   2010-05-01
0 голосов
/ 26 февраля 2019

Простым решением может быть добавление столбцов year и day к фрейму данных и вызов pd.to_datetime(df):

df = df.assign(year=2010, day=1, month=lambda l: l.date.apply(np.int)).drop('date', axis=1)
df['date'] = pd.to_datetime(df)

df = df.drop(['year', 'month', 'day'], axis=1)

print(df)

        date
0 2010-01-01
1 2010-02-01
2 2010-03-01
3 2010-04-01
4 2010-05-01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...