читать столбец даты и времени в панде.сохранить информацию секунд в кадре данных - PullRequest
0 голосов
/ 22 января 2019

Мой CSV-файл.

   Timestamp
---------------------
1/4/2019  2:00:09 PM
1/4/2019  2:00:18 PM

У меня есть информация о дате и времени в столбце в CSV-файле.Я хочу прочитать это как столбец отметки времени в кадре данных панд. Я хочу сохранить информацию о секундах.

Усилие 1: я пытался

def dateparse (timestamp):

    return pd.datetime.strptime(timestamp, '%m/%d/%Y %H:%M:%S ')

df = pd.read_csv('file_name.csv', parse_dates['Timestamp'],date_parser=dateparse)

Выше округляет секунды до чего-то вроде

1/4/2019  2:00:00

Усилие 2:

Я подумал о том, чтобы прочитать весь файл, используя, а затем преобразовать его в фрейм данных.

with open('file name.csv') as f:
    for line in f:
        print(line)

Но опять-таки здесь секунды округляются.

edit 1:

Информация об секундах усекается, когда я открываю этот CSV-файл в редакторах, таких как Sublime.

1 Ответ

0 голосов
/ 22 января 2019

Для меня работает опустить date_parser=dateparse:

import pandas as pd

temp=u"""Timestamp1
1/4/2019  2:00:09 PM
1/4/2019  2:00:18 PM"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), parse_dates=['Timestamp1'])

print (df)
           Timestamp1
0 2019-01-04 14:00:09
1 2019-01-04 14:00:18

print (df.dtypes)
Timestamp1    datetime64[ns]
dtype: object

EDIT1:

Следует изменить правильный формат даты и времени:

import pandas as pd

def dateparse (timestamp):

    return pd.datetime.strptime(timestamp, '%m/%d/%Y %I:%M:%S %p')

temp=u"""Timestamp1
1/4/2019  2:00:09 AM
1/4/2019  2:00:09 PM
1/4/2019  2:00:18 PM"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), parse_dates=['Timestamp1'],date_parser=dateparse)

print (df)
           Timestamp1
0 2019-01-04 02:00:09
1 2019-01-04 14:00:09
2 2019-01-04 14:00:18

print (df.dtypes)
Timestamp1    datetime64[ns]
dtype: object

EDIT2:

df = pd.read_csv('send1.csv', parse_dates=['Timestamp'])
print (df)
            Timestamp
0 2019-01-04 14:00:00
1 2019-01-04 14:00:00
2 2019-01-04 14:00:00
3 2019-01-04 14:00:00
4 2019-01-04 14:00:00
5 2019-01-04 14:00:00
...