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
我遇到了以下问题:
我数据中的日期时间列采用以下时间格式(列为 "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