Аномалия с использованием numPy datetime64 для работы с датами в столбце панд - PullRequest
1 голос
/ 15 мая 2019

Невозможно преобразовать строку 'ГГГГ-ММ' в дату-время ГГГГ-ММ, используя datetime64 для данных в пандах. Фрейм данных.

np.datetime64 работает для преобразования строки (дат) даты 'ГГГГ-ММ' в дату и время, когдахранится в скаляре или массиве, но не при доступе к тем же данным через DateFrame.

Я хочу преобразовать даты в столбце (формат: ГГГГ-ММ) в данные даты и времени (с добавлением или без добавления другого).столбец).

Данные CSV-файла:

month, volume
2019-01, 100
2019-02, 110

Пример кода:

import pandas as pd
import numpy as np

df=pd.read_csv (r'file location')
df["date"]=df["month"].apply(np.datetime64)

# Input (month): 2013-01
# Expected output (date): 2013-01
# Actual output (date): 2013-01-01

Итак, datetime64 меняет YYYY-MM на YYYY_MM-01 (также, YYYYконвертируется в ГГГГ-01-01)

1 Ответ

1 голос
/ 15 мая 2019

Возможно, вы ищете pd. Период:

In [11]: df.date.apply(pd.Period, freq='M')
Out[11]:
0   2019-01
1   2019-02
Name: date, dtype: object

Аналогично, но без применения:

In [12]: pd.to_datetime(df.date).dt.to_period(freq='M')
Out[12]:
0   2019-01
1   2019-02
Name: date, dtype: object
...