python/pandas中毫秒部分带逗号(,)的日期时间字符串如何转换?

How to convert a datetime-String with a comma (,) in the milliseconds part in python/pandas?

我遇到了以下问题:

我数据中的日期时间列采用以下时间格式(列为 "Date" dd.mm.yyyy 和 "Time" hh:mm:ss.fff,f):

01.03.2019  12:29:15.732,7

我环顾四周,但找不到处理逗号后面部分(毫秒后)的格式化选项。 一个对我没有帮助的消息来源: https://docs.python.org/2/library/datetime.html

我正在读取 python3 和 pd.read_csv() 中的 csv 文件。

我得到了以下解决方法,它截断了逗号和它后面的密码。

由于在我的数据集中截断了超过 50000 个字符串,速度非常慢:

data = pd.read_csv('xyz.csv', sep=';', low_memory = False, parse_dates = [['Date', 'Time']], 
                   date_parser = lambda x, y : pd.to_datetime((x + ' ' + y)[:23], format='%d.%m.%Y %H:%M:%S.%f'))

我想要的是使用处理逗号的字符串格式,通过丢弃整个毫秒部分或将其正确转换为微秒。

旁注:对于 RI,我只是使用了 "%d.%m.%Y %H:%M:%S",它丢弃了毫秒数而没有引发错误。

ResidentSleeper 是正确的,您可以使用 pd.to_datetime() 并去掉逗号。

import pandas as pd

data1 = {'Date': ['01.03.2019  12:29:15.732,7',
                  '01.03.2019  12:29:15.732,7',
                  '01.03.2019  12:29:15.732,7',
                  '01.03.2019  12:29:15.732,7'], 
        'Value': [1, 2, 3, 4]}

df1 = pd.DataFrame(data1)

df1['Date'] = pd.to_datetime(df1['Date'].str.replace(',', ''))

print(df1)

                        Date  Value
0 2019-01-03 12:29:15.732700      1
1 2019-01-03 12:29:15.732700      2
2 2019-01-03 12:29:15.732700      3
3 2019-01-03 12:29:15.732700      4