Пустые даты возвращаются на 1 января при конвертации в дату - PullRequest
0 голосов
/ 10 января 2020

Я читаю кадр данных из Excel, и когда я пытаюсь преобразовать один столбец в дату, вместо пустого значения я получаю эту дату 0001-01-01.

data['Actual Completion Date'] = [datetime.datetime.date(d) for d in data['Actual Completion Date']]

Как можно У меня просто пустое значение вместо этой странной даты?

Ответы [ 3 ]

0 голосов
/ 10 января 2020

Просто добавьте оператор if, чтобы проверить, является ли он пустым: (Я не уверен, какое значение вы имеете для «пусто», так что вот несколько вариантов)

# if by blank you mean None
data['Actual Completion Date'] = [datetime.datetime.date(d) for d in data['Actual Completion Date'] if d is not None]
# if by blank you mean empty string
data['Actual Completion Date'] = [datetime.datetime.date(d) for d in data['Actual Completion Date'] if d != ""]
# if by blank you don't know if you mean None or empty string
data['Actual Completion Date'] = [datetime.datetime.date(d) for d in data['Actual Completion Date'] if d]

0 голосов
/ 10 января 2020

Простое преобразование замены после того, как вы построили информационный кадр, может работать.

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.replace.html

Пример: dataframe.replace (thing_to_replace, thing_you_want)

dates = ['0001-01-01','1990-01-01','2001-01-01','0001-01-01']
data  = {'Actual Completion Date':dates}
df = pd.DataFrame(data)

df['Actual Completion Date'].replace('0001-01-01', '')

  Actual Completion Date
0                       
1             1990-01-01
2             2001-01-01
3   
0 голосов
/ 10 января 2020

Это может сработать

df.loc[dateColumn == '0001-01-01', 'dateColumn'] = None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...