Чтение столбцов с некоторыми датами и пробелами заставляет панд Python читать как объекты, а не как DateTime - PullRequest
0 голосов
/ 27 апреля 2018

Я читаю в таблице Excel, в которой есть столбец с некоторыми отметками даты и времени и некоторые пробелы, использующие панды с питоном. Проблема у меня заключается в том, что он читает этот столбец как объект вместо datetime64 [ns]. Я пытался использовать конвертер при чтении листа, чтобы преобразовать его в дату и время, но это не работает.

Я пытаюсь прочитать в этом столбце дату и время, чтобы преобразовать его в дату, а затем вычесть из другого столбца, в котором я читаю дату

так

df_only_req_fields_merged["Closed Date"] = [d.date() for d in df_only_req_fields_merged["Closed Date"]]   

но это не удается, так как столбец является объектом

, а затем

df_closed_timespan_all['Days to Close'] = (df_closed_timespan_all['Closed Date'] - df_closed_timespan_all['Open Date'])

Есть ли способ заставить панд читать это как дату?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Вы хотите изменить dtype столбца; тип данных. Смотри: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.astype.html.

Доступные dtypes можно найти здесь: http://pandas.pydata.org/pandas-docs/stable/basics.html#dtypes

Удобная оболочка существует в соответствии с:

pandas.to_datetime("column")
0 голосов
/ 27 апреля 2018

Это зависит от того, что вы хотите сделать с отсутствующими датами, но это может сработать для вас:

Скажем, ваш фрейм данных выглядит так:

         col1        col2
0                        
1  2017-12-12  2017-11-12
2  2017-12-12  2017-11-12
3  2017-12-12            
4  2017-12-12  2017-11-12
5                        
6  2017-12-12            
7  2017-12-12  2017-11-12
8  2017-12-12  2017-11-12
9  2017-12-12  2017-11-12

Затем используйте pd.to_datetime, чтобы преобразовать его в дату и время, и затем вы можете вычесть одно из другого:

# Convert your columns:
df['col1'] = pd.to_datetime(df['col1'])
df['col2'] = pd.to_datetime(df['col2'])
# Make a new column with the time difference between the two columns:
df['col3'] = df['col1'] - df['col2']


>>> df
        col1       col2    col3
0        NaT        NaT     NaT
1 2017-12-12 2017-11-12 30 days
2 2017-12-12 2017-11-12 30 days
3 2017-12-12        NaT     NaT
4 2017-12-12 2017-11-12 30 days
5        NaT        NaT     NaT
6 2017-12-12        NaT     NaT
7 2017-12-12 2017-11-12 30 days
8 2017-12-12 2017-11-12 30 days
9 2017-12-12 2017-11-12 30 days
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...